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 相关文章推荐
Python isinstance判断对象类型
Sep 06 Python
介绍Python中几个常用的类方法
Apr 08 Python
python网络编程之数据传输UDP实例分析
May 20 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python实现关键词提取的示例讲解
Apr 28 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
python 多维高斯分布数据生成方式
Dec 09 Python
keras的ImageDataGenerator和flow()的用法说明
Jul 03 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
Python控制鼠标键盘代码实例
Dec 08 Python
分享Python获取本机IP地址的几种方法
Mar 17 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
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
异步加载script的代码
2011/01/12 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python3基础之函数用法
2014/08/13 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
基于python 字符编码的理解
2017/09/02 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
python实现用户名密码校验
2020/03/18 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
python如何进入交互模式
2020/07/06 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
50道外企软件测试面试题
2014/08/18 面试题
自考自我鉴定范文
2013/10/30 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
英语教学随笔感言
2014/02/20 职场文书
飘柔洗发水广告词
2014/03/14 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
科技活动总结范文
2015/05/11 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python