当前位置: 首页 > 工具软件 > Python(x,y) > 使用案例 >

python画图时x轴自定义_自定义个范围的x,y坐标(python画图)

仲孙德惠
2023-12-01

我有一个小需求,网上找了半天,结果都不是我想要的,只能自己写一份,分享出来。

关键句:自定义个范围的x,y坐标

关键句:范围可以随意设置,不受数据限制

内容:例如我的数据x的范围小于2,y的范围小于2,但是我想画一个x轴和y轴都从0-5的图,这时候好像只能用坐标轴共享才可以。也就是得有一个数据xy0-5范围,以这个为基础,画另一个图。其中两个数据分别是d1,d2。

d1:

看的有点不清楚,不过d1数据最大值是3.5,而d2最大值也不超过2,现在以d1为模板,为d2共享一个坐标轴。

d2

x=d1[:,0]

y1=d1[:,1]

x2=d2[:,0]

y2=d2[:,1]

p1=np.corrcoef(d1[:,0],d1[:,1])#

xy = np.vstack([d1[:,0],d1[:,1]])

z = gaussian_kde(xy)(xy)

plt.subplots_adjust()#如果要两个图并列,见后代码

ax1 = plt.subplot()

f1 = np.polyfit(x,y1, 1)

xk=np.linspace(0,max(x),int(max(x)/0.1))

yk=f1[0]*xk+f1[1]

plt.plot(xk, yk, 'r',label='polyfit values')

plt.setp(ax1.get_xticklabels(), fontsize=6)

plt.show()#第一个图

ax2 = plt.subplot( sharex=ax1, sharey=ax1)

f2 = np.polyfit(x2,y2, 1)

xk=np.linspace(0,max(x),int(max(x)/0.1))

yk1=f1[0]*xk+f1[1]

plt.plot(xk, yk1, 'b',label='polyfit values')

plt.setp(ax2.get_xticklabels(), fontsize=6)

plt.show()#第二个图

如果要同时显示两个图在一起:

x=d1[:,0]

y1=d1[:,1]

x2=d2[:,0]

y2=d2[:,1]

p1=np.corrcoef(d1[:,0],d1[:,1])#

xy = np.vstack([d1[:,0],d1[:,1]])

z = gaussian_kde(xy)(xy)

plt.subplots_adjust()

ax1 = plt.subplot(221)

f1 = np.polyfit(x,y1, 1)

xk=np.linspace(0,max(x),int(max(x)/0.1))

yk=f1[0]*xk+f1[1]

plt.plot(xk, yk, 'r',label='polyfit values')

plt.setp(ax1.get_xticklabels(), fontsize=6)

ax2 = plt.subplot(222, sharex=ax1, sharey=ax1)

f2 = np.polyfit(x2,y2, 1)

xk=np.linspace(0,max(x),int(max(x)/0.1))

yk1=f1[0]*xk+f1[1]

plt.plot(xk, yk1, 'b',label='polyfit values')

plt.setp(ax2.get_xticklabels(), fontsize=6)

plt.show()

其他参数各位慢慢调。。

 类似资料: