首页 > 编程知识 正文

python画图坐标轴范围(matplotlib更改横轴间距)

时间:2023-05-06 03:11:17 阅读:84699 作者:2114

设定坐标轴

还记得上次画的“项链”吗? 最后,他说这些是新米村礼包,还有很多其他值得探索的地方,但是一起兴奋的样子有哪些意想不到的操作呢(不局限于折线图,很多操作也可以在其他图中利用! )

我看到这样的照片时,感到有些疑问。 好像和手写的照片有点不一样呢。 到底哪里不一样呢? 比较一下吧。

这是matplotlib画的y=x^2:

这是本人亲手画的y=x^2:

(本魂画师已上线。 非战斗人员请撤离! 请不要太在意细节哦。 无视那个长的不太协调的x轴和蚯蚓一样弯曲的抛物线,说明drdst真的尽了全力。 意会! 出人意料! )

认真地说,都是y=x^2的图像,但是感觉两图的差别很大吧?

最明显的区别是x轴和y轴的位置,因为在画抛物线时,我们习惯位于y轴和中间位置,所以用matplotlib画时,可以改变坐标轴的位置吗? 答案当然是肯定的!

获取ax=plt.gca坐标轴对象

ax.spines [ ' right ' ].set _ color [ ' none ' ] #将右侧框架的颜色设置为无色,并隐藏右侧框架

ax.spines [ ' top ' ].set _ color [ ' none ' ] #将上边框颜色设置为无色,并隐藏上边框

将ax.xaxis.set _ ticks _ position (bottom ) #下边的框指定为x轴

将ax.yaxis.set _ ticks _ position (' left ' ) #左侧的边框指定为y轴

ax.spines [ ' bottom ' ].set _ position (' data ',0 ) ) #指定数据设置的bottom (即指定的x轴)绑定到y轴上的0点

ax.spines [ ' left ' ].set _ position ((data ',0 ) )指定数据设置的left )或指定的y轴)绑定到x轴的0点

x=国家范围(-1,1,0.01 ) ) ) ) ) )。

y=x**2

PLT.plot(x,y ) )。

PLT.legend(['y=x^2'],loc=1) ) ) )。

保存文件(线3.jpg ) )。

plt.show () )

效果的图表如下。

像这样和上面的手绘画很像不是吗?

改变坐标轴的步骤在上面的代码中清楚地写有注释部分。 虽然省略说明,但使实际上无法使用的框透明化,移动其他两个框使其成为x轴和y轴。 其他刻度、标签、图标等的设定在介绍折线图时有所介绍。

rc参数的设定

作为英语渣,能使用中文的时候还是希望能使用中文的,但我画画的时候,发生了一点意外。 算了,下面这张图很眼熟。

PLT.figure (fig size=(6,4 ),dpi=80 ) ) ) ) )。

PLT.plot(x,y ) )。

plt.title (折线图) ) )。

PLT.xlabel('x ' ) ) ) )。

PLT.ylabel('y ) ) )。

PLT.xlim (-1,1 ) )。

PLT.ylim (0,1.1 ) )。

美国全国广播公司([-1,-0.8,-0.6,-0.4,-0.2,- 0.2,0.2,0.4,0.6,0.8,1 ]

y技术([ 0,0.25,0.5,0.75,1 ]

PLT.legend(['y=x^2'],loc=9) ) )。

PLT.savefig(line.png ) )。

plt.show () )

和第一张图差不多,但是换了标题。 上图的标题是“line”。 我想改成“折线图”这三个字,变成了这样。 因为本机matplotlib不支持中文显示,所以需要设定rc参数。 所谓rc参数,实际上修改是默认属性,本来就不对应中文,修改后对应中文就可以了。

这里还有一个小洞。 在rc参数的设定中显示中文后,减号的显示等特殊符号就会成为问题。 这里用具体的例子放弃了拉出这个小洞。 我们会顺手一起解决它,省点篇幅。 (

解决方法长期以来很简单,只需要两行代码:

plt.rcParams['font.sans-serif']=['Simhei'] #显示中文 plt.rcParams['axes.unicode_minus']=False #显示负号

再运行上边的代码看下效果:

中文和负号都正常显示啦!

​ rc参数的设置到这里就结束了嘛?实际上常用的rc参数设置就是这两行没错,然而还有需要提醒的一点,记下来,要考的!

​rc参数修改的是全局默认属性,也就是说,这个参数一旦设置,后续进行的所有操作都会受到rc参数的影响!

这也是进行一次设置,全篇画图函数都可以正常显示中文和负号的原因。

而rc参数还可以进行诸如线条宽度,标记点尺寸等等的各种设置,这些设置对于每个画图函数来说几乎都有相对应的参数进行单独设置,完全没有必要在rc参数中对全篇进行限制,所以如非必要,最好不要通过rc参数进行除了显示中文和符号外的其他设置。

同一幅图中绘制多条折线

​ 其实折线图一个很重要的应用是查看事务随着时间的发展所呈现出来的趋势,有时候我们想要查看不同的指标在同一段时间内的变化趋势,就需要在一副图中绘制多条折线,这种需求要怎样实现呢?

​ 实际上原理很简单,那就是创建一个画布后,在同一块画布中重复绘制就可以了:

plt.figure(figsize=(12,4)) plt.plot(df.iloc[:,0].iloc[:15],df.iloc[:,1].iloc[:15],marker = "o",label = "收盘价") plt.plot(df.iloc[:,0].iloc[:15],df.iloc[:,2].iloc[:15],marker = "v",label = "最高价") plt.plot(df.iloc[:,0].iloc[:15],df.iloc[:,3].iloc[:15],marker = "v",label = "最低价") plt.plot(df.iloc[:,0].iloc[:15],df.iloc[:,4].iloc[:15],marker = "o",label = "开盘价") plt.legend();

效果图:

​ 这是一段时间内股票价格的数据,截取了时间作为x轴数据,开盘价,最高价,最低价,收盘价为y轴数据绘制的折线图,能够看出这一段时间内股票价格的走势还是比较平稳的。

​ 温馨提示:在同一块画布中可以重复绘图,仔细观察会发现,红色线条在其他线条图层的上方,即后绘制的图会覆盖hsdlq绘制的图,所以,在绘制图形时要注意,例如饼图这种,需要同时展现好几块饼的情况,不能采用这种绘图方式,而是需要创建子图,进行多图展示!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。