Python-matplotlib绘制带箭头x-y坐标轴图形

Python-matplotlib绘制带箭头x-y坐标轴图形,第1张

在Python的数据可视化库中,采用matplotlib绘制相关图形时,若不加任何设定,一般的x-y坐标轴是不带箭头且是一个封闭的矩形。我们以Sigmoid函数的绘制,给大家展示一下。

matplotlib的辅助工具,包含一系列对坐标轴设置的框架。其中的axisartist包就用来设置坐标轴的类型。

1.创建画布并引入axisartist工具。

2.绘制带箭头的x-y坐标轴

我们先把原始的如上图的所有坐标轴隐藏,即长方形的四个边。

然后用ax.new_floating_axis在绘图区添加坐标轴x、y,这里的ax.new_floating_axis(0,0),第一个0代表平行直线,第二个0代表该直线经过0点。同样,ax.axis["y"] = ax.new_floating_axis(1,0),则代表竖直曲线且经过0点。

再次,x.axis["x"].set_axisline_style("->", size = 1.0)表示给x轴加上箭头,"->"表示是空箭头,size = 1.0表示箭头大小。ax.axis["y"].set_axisline_style("-|>", size = 1.0)中"-|>"则是实心箭头。

最后,设置x、y轴上刻度显示方向,对于x轴是刻度标签在上面还是下面,y轴则是刻度标签在左边还是右边。

3.在带箭头的x-y坐标轴背景下,绘制函数图像

tist坐标轴工具——将原始坐标轴均隐藏掉——添加新的基于原点的x与y轴——为新坐标轴加入箭头,并设置刻度显示方式——加入图形。

首先,导入工具包并执行魔法指令:

绘制一个基本的 cos 函数图像,并设置标题、坐标轴标签:

绘制结果:

使用 plt.text 在制定坐标位置添加文本注释,为了方便观察,使用 plt.grid() 添加网格线:

绘制结果:

接下来,我们希望在上图中再绘制一个指向原点的箭头道具,并且箭头道具标注为 坐标原点 。由于需要在图像上显示中文,因此须要先进性下面的全局设置:

使用 plt.annotate 添加文本注释,并使用箭头道具:

xytest 为文本添加的位置, xy 为箭头道具指向的位置, arrowprops 为箭头道具的相关参数。绘制结果:

首先,绘制一条曲线: y=x**2

绘制结果:

隐藏 x 轴和 y 轴:

上述的示例,使用 axes.get_xaxis().set_visible(False) 仅仅是将坐标轴(刻度)进行隐藏,如果想连同直线一起删除该怎么办呢?不着急,我们继续往下看!

绘制结果:

右侧和上侧坐标轴的刻度 Matplotlib 默认已经为我们隐藏了,下面我们将右侧和上侧的实线也进行隐藏:

绘制结果:

最后,关于轴的设置,我们再来学习一项常用技能!设置刻度标签!下面,我们绘制一张柱形图,并设置基本的刻度标签:

绘制结果:

我们发现,上述的刻度标签由于比较长,相邻标签会发生重叠!其实在设置刻度标签时,允许我们传入参数 rotation=45 来讲刻度标签进行一定角度的旋转:

绘制结果:

旋转完成后,默认刻度与刻度标签的中间位置垂直对应~小鱼习惯于讲刻度与刻度标签的右侧进行垂直对齐:

绘制结果:

当我们将多组数据绘制在一张图中时,为各组图形添加图注是非常必要的。添加图注只需要两个 *** 作即可:

绘制结果:

使用 loc='best' 绘制图注,图注位置将自动为我们放置到合理位置,尽量不去遮挡主图。此外,也可以直接将图注设置一定的透明度:

绘制结果:

也可以自定义图注的形状,显示位置:

绘制结果:


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

原文地址:https://54852.com/bake/11933830.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存