python 如何在 Matplotlib 中绘制垂直线
作者:阿橙FM 发布时间:2021-05-29 05:38:10
介绍
Matplotlib是Python中使用最广泛的数据可视化库之一。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图上绘制垂直线。
来源:https://juejin.cn/post/6942481160341553182
猜你喜欢
- 1.1全部php生成结构1.2html中嵌套php总结如下:html和php混写规则:php代码必须包在<?php ?>html
- 最近使用工作需要,使用了Navicat8.2版本,发现备份数据都是默认存储在C盘,这个就比较郁闷了。重做系统忘记转移了。那不就死定了?找了一
- 本文实例讲述了Python爬虫爬取杭州24时温度并展示操作。分享给大家供大家参考,具体如下:散点图 爬虫杭州今日24时温度 https://
- alleen 问:下面是我制作的一菜单效果,现在的问题是当我只点击一级菜单A一次的时候,一级菜单A的背景色由绿色变成了黄色,再点击一级菜单B
- asp压缩access数据库,具体asp代码见下: Class DatabaseTools &n
- 在做数据库备份和还原数据库的时候出现"错误2812:未能找到存储过程’master.dbo.xp_fileexist’"
- curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法。curses 是大多数类似于 UNIX 的系统(包括 Lin
- 查询一天:select * from table where to_days(column_time) = to_days(now());s
- 目录最终版本过程借鉴代码思考urllib.request和requestsBeautifulSoup优化处理总结代码复制可直接使用,记得pi
- CSS Sprites 简介:通常被意译为“CSS图像拼合”或“CSS贴图定位”。CSS Sprites并不是一门新技术,目前它已经在网页开
- 如下所示:区别ArrayTensor类型uint8,float32系列{}各类型相互转换uint8转float64:image = imag
- 经过摸索和实践,我把自己的解决方法,写在下面: 说明: 我的Oracle客户端的版本是 oracle 9i, 安装client端的时候,不能
- 1 任务需求  首先,我们来明确一下本文所需实现的需求。  现有一个
- 米随随在国外某站看到的国际上十四个优秀网页设计审核站,他发现还有中国的哦~HOHO~1.荷兰 strangefruits &nb
- 本文实例总结了php遍历目录方法。分享给大家供大家参考。具体如下:1. 方法1 <?p
- 工厂模式(Factory Pattern)是什么工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会
- python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”我遇到的问题:电脑上已经有
- Numpy是什么很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。
- 大家觉得在接手遗留代码时,见到什么东东是最让人感到不耐烦的?复杂无比的 UML ?我觉得不是。我的答案是,超过两个 else 的 if ,或
- 作者的blog:http://www.planabc.netz-index属性简介引用:z-index : auto | numberaut