用matplotlib怎样画垂直线?教你两种方法

Admin 2022-03-17 群英技术资讯 3374 次浏览

       用matplotlib怎样画垂直线?Matplotlib是Python中使用最广泛的数据可视化库之一。本文给大家介绍是matplotlib画垂直线的方法,对于我们熟悉matplotlib有一定的帮助,下面我们一起来看看吧。

       在本教程中,我们将研究如何在Matplotlib图上绘制垂直线,这使我们能够标记和突出显示图的某些区域,而无需缩放或更改轴范围。

       创建图

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

import matplotlib.pyplot as plt
import numpy as np

fig, 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 plt
import numpy as np

fig, 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') 

       结果如下:

       结论

       关于matplotlib 画垂直线的方法就分享到这,上面我们介绍了两种matplotlib 画垂直线的方法,希望能对大家有帮助,还想要了解更多matplotlib使用的内容,可以关注其他文章哦。

文本转载自脚本之家

相关阅读:

Python matplotlib绘图有什么技巧,你知道多少?
Matplotlib绘制子图的方式有哪些?
一文带你快速上手Python绘图库Matplotlib的用法
Python中matplotlib怎样使用?
一文带你快速上手Python绘图库Matplotlib的用法

群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服