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 相关文章推荐
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
跟老齐学Python之集合的关系
Sep 24 Python
利用python批量检查网站的可用性
Sep 09 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
详解Python函数式编程—高阶函数
Mar 29 Python
20行python代码的入门级小游戏的详解
May 05 Python
详解python运行三种方式
May 13 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
pandas-resample按时间聚合实例
Dec 27 Python
python process模块的使用简介
May 14 Python
PyTorch中的torch.cat简单介绍
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
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
培养自己的php编码规范
2015/09/28 PHP
JavaScript事件列表解说
2006/12/22 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript知识点整理
2015/12/09 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
python实现聊天小程序
2018/03/13 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
初任培训自我鉴定
2013/10/07 职场文书
加拿大留学自荐信
2014/01/28 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
客服专员岗位职责
2014/02/28 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
信息合作协议书
2014/10/09 职场文书
担保贷款承诺书
2015/04/30 职场文书