python绘图

python绘图,第1张

python代码
import numpy as np	#数据处理
from matplotlib import pyplot as plt	#绘图
from scipy.interpolate import make_interp_spline	#插值,用于平滑折线图


##############################################################################

plt.gcf().set_facecolor(np.ones(3) * 240 / 255)	#设置背景色
plt.rcParams['font.sans-serif'] = 'SimHei'		# 使图形中的中文正常编码显示
plt.rcParams['axes.unicode_minus'] = False		# 使坐标轴刻度表签正常显示正负号

fig = plt.figure(figsize=(12, 6))	#画布
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.5, hspace=0.5)	#子图间隔


##############################################################################

x = np.arange(1,10,0.1)	#均匀取点
y1 = np.exp(x)
y2 = np.log(x)

# 数据点
x = np.array([16,32,48,64,80])
y1 = np.array([5,12,22,40,95])
y2 = np.array([1,3,5,8,13])

# 对x和y进行插值
x_smooth = np.linspace(x.min(), x.max(), 50)
y1_smooth = make_interp_spline(x, y1)(x_smooth)
y2_smooth = make_interp_spline(x, y2)(x_smooth)


##############################################################################

ax1 = fig.add_subplot(1,1,1) #添加子图
ax1.grid(True)  #样式:网格型

# 绘制曲线
ln3 = ax1.scatter(x,y1,c='r',label="y1")
ln1, = ax1.plot(x_smooth,y1_smooth,c='g', label="y1")

# 设置坐标轴
ax1.set_xlabel('x',fontdict={'fontsize':12})
ax1.set_ylabel('y1',fontdict={'fontsize':12})
plt.xlim(0, 96)
plt.ylim(0, 100)

# 打点
for i in range(5):
	ax1.text(x[i] + 1, y1[i] - 2, '({:d},{:.2f})'.format(x[i],y1[i]),fontdict={'fontsize':10})


##############################################################################

# 副轴
ax2 = ax1.twinx() #新建子图ax2,twinx()将ax1的x轴共用
#ax2.grid(True)  #样式:网格型

# 绘制曲线
ln4 = ax2.scatter(x,y2,c='b',label="y2")
ln2, = ax2.plot(x_smooth,y2_smooth,c='y',label="y2")

# 设置坐标轴
ax2.set_ylabel('y2',fontdict={'fontsize':12})
plt.ylim(0, 16)

# 打点
for i in range(5):
	ax2.text(x[i] + 1, y2[i], '({:d},{:.2f})'.format(x[i],y2[i]),fontdict={'fontsize':10})


##############################################################################

ax1.set_title("x - y1 - y2",size=18)  #标题
ax1.legend(loc="upper left",handles=[ln1, ln2, ln3, ln4])	#图例
plt.show()	#绘图
图像

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/718678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存