3.3 设置坐标轴的长度和范围
前阵子在跟着课程学习springboot项目,所以以及有好几天没有学习python了,哈哈哈哈~现在的话尽可能每天都合理安排一下学习规划才行。今天将会学习一些与坐标轴范围和长度相关的属性。因为比较简单,所以我们可以直接在控制台上测试运行
工作准备:需要导入这个模块:import matplotlib.pylab as plt
(1)我们用坐标轴的不同属性来测试看看
-
调用不带参数的axis():
plt.axis()
输出结果如下:
在交互模式下:
因为在交互模式下,所以显示只有坐标轴的空白图 -
这里的值分别表示xmin、xmax、ymin和ymax。同样,我们可以设置x轴和y轴的值。
l=[-1,1,-10,10]
plt.axis(l)
Out[7]: (-1.0, 1.0, -10.0, 10.0)
交互模式下:
(2)说明
1、如果不使用axis()或者其他参数设置,matplotlib会自动使用最小
值,刚好可以让我们在一个图中看到所有的数据点
2、如果设置 axis()的范围比数据集合中的最大值小,matplotlib按照设置执行,这样就无法在图中看到所有的数据点
3、因此,为了避免这种情况发生的一种方法是调用
autoscale()(matplotlib.pyplot.autoscale())
方法,该方法会计算坐标轴的最佳大小以适应数据的显示
(3)如果我们想对当前图形添加一条直线,我们可以调用matplotlib.pyplot.axhline()
或者 matplotlib.pyplot.axvline()
- axhline()和axvline()方法会根据给定的x和y值相应地绘制出相对于坐标轴的水平线和垂直线
- axhline()方法
比较重要的参数是y 向位置、xmin 和 xmax
- axvline()方法
比较重要的参数是 x向位置、ymin和ymax
- 我们来测试一下
l=[-1,1,-10,10]
plt.axhline()
plt.axvline()
plt.axis(l)
Out[11]: (-1.0, 1.0, -10.0, 10.0)
Out[12]: <matplotlib.lines.Line2D at 0x13ca86fda90>
plt.axhline(4)
Out[13]: <matplotlib.lines.Line2D at 0x13ca870d048>
由上面两幅图的对比我们可以知道,在调用这些方法的时候如果不传入参数,就是使用默认值
axhline()绘制了一条y=0的水平线
axvline()绘制了一条x=0的垂直线。
- 类似地,另外两个相关的方法允许我们添加一个跨坐标轴的水平带(矩形)
matplotlib.pyplot.axvspan()
1、axhspan()方法必需的ymin和ymax参数指定了水平带的宽度。同理
2、axvspan()方法必需的xmin和xmax参数指定了垂直带的宽度
- 测试
plt.axvspan(0.3,0.4)
(4)图形中的网格属性默认是关闭的,但可以很简单地打开和定制化。不带参数调用matplotlib.pyplot.grid()会切换网格的显示状态。
plt.grid()
(5)另外一些控制参数如下:
- which:指定绘制的**网格刻度类型(**major、minor 或者 both)
- axis:指定绘制哪组网格线