小编给大家分享一下python在Matplotlib中绘制垂直线的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创建图
让我们首先用一些随机数据创建一个简单的图:
import matplotlib.pyplot as pltimport numpy as npfig, ax = plt.subplots(figsize=(12, 6))np.random.seed(42)x = np.random.rand(150)ax.plot(x)plt.show()
在这里,我们使用 Numpy
生成了[0,1)范围内的150个随机数据点。
现在,由于我们已经设置了 seed
,因此我们可以根据需要多次复制此随机图像。例如,我们可以在20和100标记上绘制垂直线。
可以通过 PyPlot 的vlines()
或axvline()
函数这两种方法来绘制线。当然,您也可以在Axes对象上调用这些方法。
使用 PyPlot.vlines()在Matplotlib绘图上绘制垂直线
让我们从 vlines()
函数开始:
import matplotlib.pyplot as pltimport numpy as npfig, ax = plt.subplots(figsize=(12, 6))np.random.seed(42)x = np.random.rand(150)ax.plot(x)ax.vlines([20, 100], 0, 1, linestyles='dashed', colors='red')plt.show()
vlines()
函数接受一些参数:“即您想在其上绘制线条的标量或X值的一维数组。我们提供了[20,100],标记了两个点,尽管您可以从0..n点开始。然后,ymin
和ymax
参数:这些是线条的高度。我们将它们设置为0到1,因为这也是np.random.rand()
调用的分布。然后,您可以设置接受典型Matplotlib样式选项的样式,例如线型或颜色。
运行此代码的结果如下:
我们在X轴的20和100点处有两条垂直虚线,用红色虚线表示。
此函数允许我们在具体值中设置ymin
和ymax
,而axvline()
允许我们按百分比选择高度,或者默认情况下,我们仅使其从底部绘制到顶部。
fig, ax = plt.subplots(figsize=(12, 6))np.random.seed(42)x = np.random.rand(150)ax.plot(x)ax.set_ylim(-10, 10)ax.vlines([20, 100], -2, 2, linestyles='dashed', colors='red')
在这里,我们把这条线设置为比随机数据本身的范围长,但仍比Axes本身小得多。
使用 PyPlot.axvline()在Matplotlib绘图上绘制垂直线
现在,让我们看一下axvline()
函数:
fig, ax = plt.subplots(figsize=(12, 6))np.random.seed(42)x = np.random.rand(150)ax.plot(x)ax.set_ylim(-10, 10)ax.axvline(20, color='red')ax.axvline(100, color='red')plt.show()
它具有其他功能所没有的一些限制,例如一次只能绘制在一个点上。如果要绘制多个点(例如20和100),则必须调用函数两次。
它实际上并没有像vlines()那样让我们指定线型,但是默认情况下,它不需要ymin
和ymax
参数。如果省略后,它们将只是从轴的顶部到底部:
但是,您可以根据需要更改高度:这次您将以百分比为单位更改高度。这些百分比考虑了轴的顶部和底部,因此0%将位于底部,而100%将位于顶部。让我们画一条从50%到80%的线:
fig, ax = plt.subplots(figsize=(12, 6))np.random.seed(42)x = np.random.rand(150)ax.plot(x)ax.set_ylim(-10, 10)ax.axvline(20, 0.8, 0.5, color='red')ax.axvline(100, 0.8, 0.5, color='red')
结果如下:
以上是“python在Matplotlib中绘制垂直线的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!