首页编程开发Matplotlib【数据可视化(Matplo...

【数据可视化(Matplotlib篇)】8.调整坐标轴的刻度标签

本系列文章配套代码获取有以下两种途径:

  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/1jG-rGG4QMuZu0t0kEEl7SA?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Data_Visualization





绘图时,刻度标签的样式也同样影响可视化效果。

采用合适的刻度标签样式,不仅可以将数据自身的特点很好地展示出来,也可以让可视化效果变得更加理想。

例如,在上一篇文章中绘制的正弦曲线图,默认情况下,x轴显示的仍然是0,1,2……,而非以π为倍数的坐标轴刻度。

Matplotlib中使用xticks()yticks()函数分别设置x轴、y轴的刻度标签,语法如下:

plt.xticks(ticks=None , labels=None , **kwargs)
plt.yticks(ticks=None , labels=None , **kwargs)

其中,
  • ticks:刻度标签位置列表,如果是空列表将会移除刻度标签;
  • labels放在指定刻度位置的标签文本。当ticks参数有输入值,该参数才能传入参数;
  • **kwargs:文本属性用来控制标签文本的展示,例如字体大小、字体样式等,常使用的有以下参数:
    ▷ rotation:逆时针方向旋转标签的角度;
    ▷ color:刻度标签颜色;

    ▷ fontsize:刻度标签字体大小。

01
基础刻度标签设置

通过下述代码,将正弦曲线图的坐标刻度进行设置调整:

  • 首先通过ticks参数传入每个刻度显示的位置列表——[0 , np.pi/2 , np.pi , 3*np.pi/2 , 2*np.pi]

  • 然后通过label参数传入指定刻度位置对应的标签文本——[0 , r”$pi/2$” , r”$pi$” , r”$3pi/2$” , r”$2pi$”]

x = np.linspace(0 , 2*np.pi , 200)
y = np.sin(x)

plt.plot(x,y)
plt.xlim(0,2*np.pi)

# 设定x轴刻度标签
plt.xticks(ticks=[0 , np.pi/2 , np.pi , 3*np.pi/2 , 2*np.pi] , 
           labels=[0 , r"$pi/2$" , r"$pi$" , r"$3pi/2$" , r"$2pi$"] , 
           color='b' , 
           fontsize=14
          )
# 设定y轴刻度标签
plt.yticks(ticks=[-1 , 0 , 1] , 
           labels=["min=-1" , 0 , "max=1"] , 
           rotation=45 , 
           color='r' , 
           fontsize=14
          )

plt.show()

可视化效果如下图所示:

ticks参数传入的是空列表时,将移除坐标轴所有刻度,相当于禁用刻度:
x = np.linspace(0 , 2*np.pi , 200)
y = np.sin(x)

plt.plot(x,y)
plt.xlim(0,2*np.pi)

# 禁用刻度
plt.xticks(ticks=[])
plt.yticks(ticks=[])

plt.show()
可视化效果如下图所示:
02
不带参数的函数

使用xticks()yticks()函数时,如果不传入任何参数,将返回当前图表坐标轴刻度位置与标签值,语法如下:

locs,labels = plt.xticks( )

其中,

  • locs是标签的位置,数据形态是矩阵;

  • labels是标签的字符串,数据形态是列表list。

下面返回上面对坐标刻度进行过设置调整的正弦曲线图的坐标轴刻度位置与标签值:

x = np.linspace(0 , 2*np.pi , 200)
y = np.sin(x)

plt.plot(x,y)
plt.xlim(0,2*np.pi)

plt.xticks(ticks=[0 , np.pi/2 , np.pi , 3*np.pi/2 , 2*np.pi] , 
           labels=[0 , r"$pi/2$" , r"$pi$" , r"$3pi/2$" , r"$2pi$"] , 
           color='b' , 
           fontsize=14
          )
plt.yticks(ticks=[-1 , 0 , 1] , 
           labels=["min=-1" , 0 , "max=1"] , 
           rotation=45 , 
           color='r' , 
           fontsize=14
          )

# 获取x轴刻度位置与标签值
locs,labels = plt.xticks()
print(f"当前x轴刻度位置为:{locs},n当前x轴刻度标签为:{labels}")
# 获取y轴刻度位置与标签值
locs,labels = plt.yticks()
print(f"当前y轴刻度位置为:{locs},n当前y轴刻度标签为:{labels}")

plt.show()

返回结果如下:

当前x轴刻度位置为:[0.         1.57079633 3.14159265 4.71238898 6.28318531],
当前x轴刻度标签为:[Text(0.0, 0, '0'), Text(1.5707963267948966, 0, '$\pi/2$'), Text(3.141592653589793, 0, '$\pi$'), Text(4.71238898038469, 0, '$3\pi/2$'), Text(6.283185307179586, 0, '$2\pi$')]
当前y轴刻度位置为:[-1  0  1],
当前y轴刻度标签为:[Text(0, -1, 'min=-1'), Text(0, 0, '0'), Text(0, 1, 'max=1')]

更多内容可以前往官网查看

https://matplotlib.org/stable/


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments