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获取Linux系统的各种信息
Jul 10 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
Python中反射和描述器总结
Sep 23 Python
Django 内置权限扩展案例详解
Mar 04 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
利用python画出AUC曲线的实例
Feb 28 Python
什么是python的函数体
Jun 19 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
Dec 31 Python
python安装mysql的依赖包mysql-python操作
Jan 01 Python
用python批量移动文件
Jan 14 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
PHP 文件类型判断代码
2009/03/13 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
Python处理文本文件中控制字符的方法
2017/02/07 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
用Python shell简化开发
2018/08/08 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python opencv调用笔记本摄像头
2019/08/28 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
军训自我鉴定100字
2014/02/13 职场文书
远程教育学习心得体会
2016/01/23 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python