前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义个范围的x,y坐标(python画图)

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

作者头像
一个有趣的灵魂W
发布2020-09-15 15:02:15
2.7K0
发布2020-09-15 15:02:15
举报

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

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

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

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

d1:

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

d2

代码语言:javascript
复制
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()#第一个图
代码语言:javascript
复制
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()#第二个图

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

代码语言:javascript
复制
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()

其他参数各位慢慢调。。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个有趣的灵魂W 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档