python在Matplotlib中绘制垂直线的方法

  介绍

小编给大家分享一下python在Matplotlib中绘制垂直线的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

创建图

让我们首先用一些随机数据创建一个简单的图:

import  matplotlib.pyplot  as  plt   import  numpy  as  np      无花果,ax =, plt.subplots (figsize=(12,, 6))      np.random.seed (42)   时间=x  np.random.rand (150)   ax.plot (x)      plt.show ()

在这里,我们使用<代码> Numpy 生成了(0,1)范围内的150个随机数据点。

 python在Matplotlib中绘制垂直线的方法

现在,由于我们已经设置了<代码>种子>

可以通过PyPlot的<代码> vlines() 或<代码> axvline() 函数这两种方法来绘制线。当然,您也可以在轴对象上调用这些方法。

使用PyPlot。vlines()在Matplotlib绘图上绘制垂直线

让我们从<代码> vlines() 函数开始:

import  matplotlib.pyplot  as  plt   import  numpy  as  np      无花果,ax =, plt.subplots (figsize=(12,, 6))      np.random.seed (42)   时间=x  np.random.rand (150)   ax.plot (x)      ax.vlines([20日,100年),0,,1,,线型=& # 39;冲# 39;,,颜色=& # 39;红色# 39;)      plt.show ()

<代码> vlines() 函数接受一些参数:”即您想在其上绘制线条的标量或X值的一维数组。我们提供了[20100],标记了两个点,尽管您可以从0 . . n点开始,然后,<代码> ymin 和<代码> ymax> np.random。rand() 调用的分布。然后,您可以设置接受典型Matplotlib样式选项的样式,例如线型或颜色。

运行此代码的结果如下:

 python在Matplotlib中绘制垂直线的方法

我们在X轴的20和100点处有两条垂直虚线,用红色虚线表示。

此函数允许我们在具体值中设置<代码> ymin 和<代码> ymax> axvline() 允许我们按百分比选择高度,或者默认情况下,我们仅使其从底部绘制到顶部。

图,,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,,线型=& # 39;冲# 39;,,颜色=& # 39;红色# 39;)

 python在Matplotlib中绘制垂直线的方法

在这里,我们把这条线设置为比随机数据本身的范围长,但仍比轴本身小得多。

使用PyPlot。axvline()在Matplotlib绘图上绘制垂直线

现在,让我们看一下<代码> axvline() 函数:

图,,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,,颜色=& # 39;红色# 39;)   ax.axvline(100,颜色=& # 39;红色# 39;)      plt.show ()

它具有其他功能所没有的一些限制,例如一次只能绘制在一个点上。如果要绘制多个点(例如20和100),则必须调用函数两次。

它实际上并没有像vlines()那样让我们指定线型,但是默认情况下,它不需要<代码> ymin 和<代码> ymax>

 python在Matplotlib中绘制垂直线的方法

但是,您可以根据需要更改高度:这次您将以百分比为单位更改高度。这些百分比考虑了轴的顶部和底部,因此0%将位于底部,而100%将位于顶部。让我们画一条从50%到80%的线:

图,,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,颜色=& # 39;红色# 39;)   ax.axvline(100,, 0.8,, 0.5,颜色=& # 39;红色# 39;)

结果如下:

 python在Matplotlib中绘制垂直线的方法

python在Matplotlib中绘制垂直线的方法