python 如何在 Matplotlib 中绘制垂直线


Posted in Python onApril 02, 2021

介绍

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个随机数据点。

python 如何在 Matplotlib 中绘制垂直线

现在,由于我们已经设置了 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点开始。然后,yminymax参数:这些是线条的高度。我们将它们设置为0到1,因为这也是np.random.rand()调用的分布。然后,您可以设置接受典型Matplotlib样式选项的样式,例如线型或颜色。

运行此代码的结果如下:

python 如何在 Matplotlib 中绘制垂直线

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

此函数允许我们在具体值中设置yminymax,而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')

python 如何在 Matplotlib 中绘制垂直线

在这里,我们把这条线设置为比随机数据本身的范围长,但仍比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()那样让我们指定线型,但是默认情况下,它不需要yminymax参数。如果省略后,它们将只是从轴的顶部到底部:

python 如何在 Matplotlib 中绘制垂直线

但是,您可以根据需要更改高度:这次您将以百分比为单位更改高度。这些百分比考虑了轴的顶部和底部,因此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 中绘制垂直线

结论

在本教程中,我们介绍了如何用两种方法在Matplotlib图上绘制垂直线。

以上就是python 如何在 Matplotlib 中绘制垂直线的详细内容,更多关于python在 Matplotlib 中绘制垂直线的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
在Django框架中运行Python应用全攻略
Jul 17 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 Python
基于python的字节编译详解
Sep 20 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
python实现excel读写数据
Mar 02 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
May 25 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
Python发展史及网络爬虫
Jun 19 Python
python获取Pandas列名的几种方法
Aug 07 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
在Windows下安装配置CPU版的PyTorch的方法
PyQt5 QThread倒计时功能的实现代码
Apr 02 #Python
Python中Permission denied的解决方案
Apr 02 #Python
python爬不同图片分别保存在不同文件夹中的实现
Python读取文件夹下的所有文件实例代码
如何用python识别滑块验证码中的缺口
python 实现定时任务的四种方式
Apr 01 #Python
You might like
PHP JSON 数据解析代码
2010/05/26 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
php 数组元素快速去重
2017/05/05 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
在Django中创建第一个静态视图
2015/07/15 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
电子信息专业自荐书
2014/02/04 职场文书
《口技》教学反思
2014/02/21 职场文书
绿色出行口号
2014/06/18 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
追讨欠款律师函
2015/05/27 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript