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

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

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

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




默认情况下,Matplotlib会根据数据自行设定坐标轴刻度范围区间。
例如,当绘制y=sin(x)函数曲线时,图表左下角的坐标点并不是(0,*1)。
x = np.linspace(0 , 4*np.pi , 500)
y = np.sin(x)

plt.plot(x,y)

plt.show()

如需取或者设定x轴和y轴的刻度范围以使用axis()函数、xlim()函数和ylim()函数来完成。
01
axis()函数

  • 1)、获取x、y轴的刻度范围:
使用axis()函数获取xy轴的最小值和最大值时的用法如下:
xmin,xmax,ymin,ymax = plt.axis()
通过以下代码可以获取上图中xy轴的刻度范围:
x = np.linspace(0 , 4*np.pi , 500)
y = np.sin(x)

plt.plot(x,y)

# 获取xy轴的范围
xmin,xmax,ymin,ymax = plt.axis()
print(f"x轴范围为:{(xmin,xmax)} , y轴范围为:{(ymin,ymax)}")

plt.show()
输出结果为:
x轴范围为:(-0.6283185307179586, 13.194689145077131) , y轴范围为:(-1.0999945499436368, 1.0999945499436368)
  • 2)、设定x、y轴的刻度范围:
axis()函数设定图表的x轴和y轴的刻度范围时的语法如下:
plt.axis([xmin,xmax,ymin,ymax],**kwargs)
上述是选项参数,参数必须是列表或是元组,xminx轴的最小刻度,xmaxx轴的最大刻度;yminy轴的最小刻度,ymaxy轴的最大刻度。
使用axis()函数将x轴刻度设为0~4π,将y轴刻度设为-1~1,代码如下所示:
x = np.linspace(0 , 4*np.pi , 500)
y = np.sin(x)

plt.plot(x,y)

# 设定x、y轴的范围
plt.axis([0 , 4*np.pi , -1 , 1])

plt.show()

可视化效果如下图所示:

axis()函数中**kwargs常见参数如下:
  • ‘on’:显示坐标轴、坐标轴标签,等价于布尔值True,默认值
  • ‘off’ :不显示坐标轴、坐标轴标签,等价于布尔值False
  • ‘equal’:通过改变坐标轴极值等比例缩放。在这种情况下,明确设置坐标轴极值无效
  • ‘scaled’:通过改变绘图区维度等比例缩放,不再进一步自动缩放坐标轴
  • ‘tight’:仅修改坐标轴极值以显示全部数据,不再进一步自动缩放坐标轴
  • ‘auto’ :自动缩放坐标轴
  • ‘square’设定长度与宽度相同,此时绘图区为正方形,类似于‘scaled’,但是初始化时强制xmax-xmin == ymax-ymin

通过多子图的方式将多个参数的显示效果放置在一起,可以清楚地查看参数效果,代码如下所示:

x = np.linspace(0 , 4*np.pi , 500)
y = np.sin(x)

fig, axes = plt.subplots(32 , figsize=(108))

axes[0,0].plot(x,y)
axes[0,0].axis('off')
axes[0,0].set_title('off')

axes[0,1].plot(x,y)
axes[0,1].axis('scaled')
axes[0,1].set_title('scaled')

axes[1,0].plot(x,y)
axes[1,0].axis('equal')
axes[1,0].set_title('equal')

axes[1,1].plot(x,y)
axes[1,1].axis('square')
axes[1,1].set_title('square')

axes[2,0].plot(x,y)
axes[2,0].axis('tight')
axes[2,0].set_title('tight')

axes[2,1].plot(x,y)
axes[2,1].axis('auto')
axes[2,1].set_title('auto')

fig.subplots_adjust(wspace=0.5, hspace=0.5)
可视化效果如下图所示:

02
xlim()、ylim()函数

axis()函数类似,如果在xlim()函数或ylim()函数内有设定参数,则此参数代表x轴和y轴的范围;如果没有设定参数,则返回x轴和y的范围区间。
  • 1)、获取x、y轴的刻度范围:

使用xlim()函数获取x轴范围时的用法如下:
left,right = plt.xlim()
其中,leftx轴左边界,rightx轴右边界。
使用ylim()函数获取y轴范围时的用法如下:
bottom,top = plt.ylim()
其中,bottomy轴下边界,topy轴上边界
通过以下代码可以获取上图中xy轴的刻度范围:
x = np.linspace(0 , 4*np.pi , 500)
y = np.sin(x)

plt.plot(x,y)

# 获取xy轴的范围
left,right = plt.xlim()
bottom,top = plt.ylim()
print(f"x轴范围为:{(left,right)} , y轴范围为:{(bottom,top)}")

plt.show()
输出结果为:
x轴范围为:(-0.6283185307179586, 13.194689145077131) , y轴范围为:(-1.0999945499436368, 1.0999945499436368)
  • 2)、设定x、y轴的刻度范围:
xlim()函数和ylim()函数设定图表的x轴和y轴的刻度范围时的语法如下:
plt.xlim(left,right) 或 plt.xlim((left,right))

plt.ylim(bottom,top) 或 plt.ylim((bottom,top))
可以传入两个边界的设定值,也可以只传入单一边界的设定值。
使用xlim()函数将x轴刻度设为0~4π使用ylim()函数将y轴刻度设为-1~1,代码如下所示:
x = np.linspace(0 , 4*np.pi , 500)
y = np.sin(x)

plt.plot(x,y)

# 设定x轴的范围,只设定右边界
plt.xlim(right=4*np.pi)
# 设定y轴的范围
plt.ylim(-1,1)

plt.show()

可视化效果如下图所示:

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

https://matplotlib.org/stable/


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

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments