Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python可视化库Matplotlib绘图入门详解

Python可视化库Matplotlib绘图入门详解

作者头像
用户6543014
发布于 2020-03-26 07:46:43
发布于 2020-03-26 07:46:43
5.4K00
代码可运行
举报
文章被收录于专栏:CU技术社区CU技术社区
运行总次数:0
代码可运行

matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。可视化有助于更好地分析数据并增强用户的决策能力。在此matplotlib教程中,我们将绘制一些图形并更改一些属性,例如字体、标签、范围等。

首先,我们将安装matplotlib,然后开始绘制一些基本的图形。在此之前,让我们看一下matplotlib可以绘制的一些图。

Plot Types

matplotlib中有许多不同的Plot Types。本节简要说明了matplotlib中的某些Plot Types。

Line Plot

Line Plot是图形中的简单2D线。

Contouring 和Pseudocolor

通过使用函数pcolormesh(),即使尺寸分布不均匀,我们也可以用颜色表示二维数组。同样,contour()函数执行相同的工作。

直方图

为了以直方图的形式返回bin计数和概率,我们使用了hist()函数。

要在Matplotlib中添加任意路径,我们使用matplotlib.path模块。

流量图

我们可以使用streamplot()函数绘制矢量的流线。我们还可以映射不同参数的颜色和宽度,例如速度、时间等。

条形图

我们可以使用bar()函数制作具有很多自定义功能的条形图。

其他种类Matplotlib中的其他一些绘图示例包括:

  • Ellipses
  • Pie Charts
  • Tables
  • Scatter Plots
  • GUI widgets
  • Filled curves
  • Date handling
  • Log plots
  • Legends
  • TeX- Notations for text objects
  • Native TeX rendering
  • EEG GUI
  • XKCD-style sketch plots

安装

假设在环境变量中设置了Python的路径,则只需使用pip命令安装matplotlib软件包即可上手。

使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ pip安装matplotlib

在我的系统中,该软件包已经安装。如果该软件包还没安装就会自动下载安装。

要将包导入到您的Python文件中,可以使用以下语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt

‍其中matplotlib是库,pyplot是一个软件包,包括所有要在Python中使用MATLAB函数的MATLAB函数。

最后,我们可以使用plt调用python文件中的函数。

垂线

要使用pyplot绘制垂直线,可以使用axvline()函数。

axvline的语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.axvline(x = 0,ymin = 0,ymax = 1** kwargs)

用这种语法:x是x轴的坐标。这是从垂直方向生成线的位置。ymin是plot的底部,ymax是plot的顶部。** kwarg是线条的属性,例如颜色、标签,线条样式等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt
plt.axvline(0.201,label ='pyplot垂直线')
plt.legend()
plt.show()

在此示例中,我们绘制一条垂直线。0.2表示将在图形的点0.2处绘制该线,0和1分别是ymin和ymax,标记行属性之一。legend()是实现绘图的MATLAB函数,可在图上启用标签。最后,show()将打开plot或graph屏幕。

水平线

axhline()绘制一条水平线的语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.axhline(y = 0,xmin = 0,xmax = 1** kwargs)

在语法中:y是沿y轴的坐标。这些点是水平生成直线的位置。xmin表示图的左侧,xmax是图的右侧。** kwarg是线条的属性,例如颜色、标签、线条样式等。

在上一个示例中,用axhline()替换axvline(), 就会在绘图上得到一条水平线:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt

积分= 0.2

plt.axhline(ypoints,01,label ='pyplot水平线')

plt.legend()

plt.show()

多行

要绘制多条垂直线,我们可以创建一个x点/坐标的数组,然后遍历该数组的每个元素以绘制多条线:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt

xpoints = [0.20.40.6]

对于xpoints中的p:

    plt.axvline(p,label ='pyplot垂直线')

plt.legend()

plt.show()

输出将是:

上面的输出看起来并不吸引人,我们也可以为图中的每行使用不同的颜色。

看下面的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt

xpoints = [0.20.40.6]

颜色= ['g''c''m']

对于zip中的p,c(xpoints,颜色):

    plt.axvline(p,label ='line:{}'。format(p),c = c)

plt.legend()

plt.show()

在此示例中,我们有一个线数组和一个Python颜色符号数组。使用zip()函数,两个数组合并在一起:xpoints []的第一个元素与color []数组的第一个元素。比如,第一行=绿色,第二行=青色,依此类推。

花括号{}充当占位符,借助format()函数将Python变量添加到输出中。因此,会在图中看到xpoints []。

上面代码的输出:

只需在上一个示例中将axvline()替换为axhline(),绘图中就会出现多条水平线:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt

ypoints = [0.20.40.60.68]

颜色= ['b''k''y''m']

用于zip中的p,c(点,颜色):

    plt.axhline(p,label ='line:{}'。format(p),c = c)

plt.legend()

plt.show()

代码是相同的,这次我们有一个由y轴的四个点组成的数组,并且颜色不同。这两个数组都使用zip()函数合并在一起,遍历最终数组,并且用axhline()绘制线,如下面的输出所示:

保存图形

绘制图形后,如何保存输出图形?

要保存请使用pyplot的savefig()。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.savefig(fname,** kwargs)

其中,fname是文件名,目标或路径也可以与文件名一起指定。kwargs参数是可选的。用于更改方向、格式、表面颜色、质量、dpi等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
导入matplotlib.pyplot作为plt

ypoints = [0.20.40.60.68]

颜色= ['b''k''y''m']

用于zip中的p,c(点,颜色):

    plt.axhline(p,label ='line:{}'。format(p),c = c)

plt.savefig('horizontal_lines.png')

plt.legend()

plt.show()

该文件的名称为horizontal_lines.png,该文件保存在您的python文件存储位置:

多个plot

前面的所有示例都是关于在一个图中进行绘制。在同一图中绘制多个图怎么办?

您可以借助Python pyplot的subplot()函数在同一图中生成多个图。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
matplotlib.pyplot.subplot(nrows,ncols,index,** kwargs)

在参数中,我们需要指定三个整数,分别是行和列中的绘图数,然后制定图的索引位置。您可以将其视为一个网格,我们正在绘制其单元格。

第一个数字是nrows行数,第二个数字是ncols列数,然后是索引。其他可选参数(** kwargs)包括颜色、标签、标题、快照等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
从matplotlib导入pyplot作为plt

plt.subplot(121)

x1 = [102030405060708090100]

y1 = [5101520253035404550]

plt.plot(x1,y1,color =“ c”)




plt.subplot(122)

x2 = [405060708090100]

y2 = [405060708090100]

plt.plot(x2,y2,color =“ m”)

plt.show()

思考以下代码,以更好地理解如何在一个图中绘制多个图形。首先是定义plot的位置。在第一个子图中,1,2,1表示我们有1行2列,当前图将在索引1处绘制。类似地,1,2,2告诉我们有1行2列,但是这将图的时间定为索引2。

下一步是创建数组以在图中绘制整数点。查看以下输出:

这就是绘制垂直子图的方式。要绘制水平图,请将子图的行和列值更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.subplot(211)

plt.subplot(212

这意味着我们有2行1列。输出将如下所示:

现在,让我们创建一个2×2的网格图。

可以使用下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
从matplotlib导入pyplot作为plt

plt.subplot(221)

x1 = [405060708090100]

y1 = [405060708090100]

plt.plot(x1,y1,color =“ c”)




plt.subplot(222)

x2 = [405060708090100]

x2 = [405060708090100]

plt.plot(x2,y2,color =“ m”)




plt.subplot(223)

x3 = [405060708090100]

y3 = [405060708090100]

plt.plot(x3,y3,color =“ g”)




plt.subplot(224)

x4 = [405060708090100]

y4 = [405060708090100]

plt.plot(x4,y4,color =“ r”)

plt.show()

输出将是:

在此示例中,2,2,1表示2行2列,会在索引1处进行绘制。类似地,2,2,2表示2行2列,索引会在2处绘制。

字体大小

我们可以借助一个名为rc()的函数来更改绘图的字体大小。rc()函数用于自定义rc设置。要使用rc()更改字体大小,可以使用以下语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
matplotlib.pyplot.rc('fontname'** font)

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
matplotlib.pyplot.rc('font',size = sizeInt

上面语法中的字体是用户定义的词典,用于指定文本的权重、字体系列、字体大小等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.rc('font',size = 30

这会将字体更改为30,输出将是:

轴范围

可以分别使用pyplot的xlim()和ylim()函数来设置x和y轴的范围或限制。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
matplotlib.pyplot.xlim([开始点,结束点])

matplotlib.pyplot.ylim([开始点,结束点]

考虑下面的示例来设置图的x轴限制:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
从matplotlib导入pyplot作为plt

x1 = [405060708090100]

y1 = [405060708090100]

plt.plot(x1,y1)

plt.xlim([0,160])

plt.show()

在此示例中,x轴上的点将从0到160开始,如下所示:

同样,要限制y轴坐标,可以用下面这个代码行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.ylim([0,160]

输出将是:

标签轴

可以使用pyplot的xlabel()和ylabel()函数创建x和y轴的标签。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
matplotlib.pyplot.xlabel(labeltext,labelfontdict,** kwargs)

matplotlib.pyplot.ylabel(labeltext,labelfontdict,** kwargs)

在上述语法中,labeltext是标签的文本,是一个字符串,labelfont描述了标签文本的字体大小、粗细、字体类型。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
从matplotlib导入pyplot作为plt

x1 = [405060708090100]

y1 = [405060708090100]

plt.plot(x1,y1)

plt.xlabel('像极客X轴')

plt.ylabel('Like Geeks Y Axis')

plt.show()

在上面的示例中,对于x和y坐标,我们分别有常规的x和y数组。然后plt.xlabel()为x轴生成一个文本,而plt.ylabel()为y轴生成一个文本。

清除plot

pyplot的clf()函数清除了绘图。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
matplotlib.pyplot.clf()

在clf()函数中,没有任何参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
从matplotlib导入pyplot作为plt

x1 = [405060708090100]

y1 = [405060708090100]

plt.plot(x1,y1)

plt.xlabel('像极客X轴')

plt.ylabel('Like Geeks Y Axis')

plt.clf()

plt.show()

在此代码中,我们创建了一个图并定义了标签。之后,我们使用clf()函数按如下所示清除plot:

希望这个教程对您有用

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SACC开源架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【数据可视化】Matplotlib 从入门到精通学习笔记
如果将文本数据与图表数据相比较,人类的思维模式更适合于理解后者,原因在于图表数据更加直观且形象化,它对于人类视觉的冲击更强,这种使用图表来表示数据的方法被叫做数据可视化。
小小程序员
2022/11/22
5.4K0
【数据可视化】Matplotlib 从入门到精通学习笔记
Matplotlib可视化之旅
MATLAB, and pyplot, have the concept of the current figure and the current axes. All plotting commands apply to the current axes. The function gca() returns the current axes (a matplotlib.axes.Axes instance), and gcf() returns the current figure (matplotlib.figure.Figure instance).
公众号---人生代码
2019/10/23
3680
Matplotlib可视化之旅
python---数据可视化篇
matplotlib是Python的基本绘图模块,包含了大量的工具。 我们可以使用matplotlib创建各种图像,包括简单的折线图、柱状图等,甚至是复杂的三维图像。 matplotlib模块里有一个非常方便的子模块:pyplot,我们之后要绘制的图像主要都是依赖于这个子模块~
阑梦清川
2025/02/24
1910
python---数据可视化篇
python matplotlib各种绘图类型完整总结
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)
Twcat_tree
2022/12/05
6K0
python matplotlib各种绘图类型完整总结
Matplotlib 绘2D图
Matplotlib 是一个非常简单而又完善的开源绘图库。那么它到底有多简单呢? 基本知识 首先官方文档奉上 下面,我们通过 3 行代码绘制一张简单的折线图。 from matplotlib imp
听城
2018/04/27
2.5K0
Matplotlib 绘2D图
Python3快速入门(十六)——Mat
Matplotlib是 Python 2D-绘图领域使用最广泛的套件,可以简易地将数据图形化,并且提供多样化的输出格式。 matplotlib有两个接口,一个是状态机层的接口,通过pyplot模块来进行管理;一个是面向对象的接口,通过pylab模块将所有的功能函数全部导入其单独的命名空间内。
py3study
2020/01/03
1.4K0
绘图与可视化(1)
提供信息的可视化是数据分析的重要任务之一,从本章开始会比较详细介绍绘图与可视化有关知识,主要用到的库有matplotlib、numpy、pandas和seaborn。
python数据可视化之路
2023/02/23
6610
绘图与可视化(1)
Python数据可视化-第3章-图表辅助元素的定制
图表的辅助元素是指除了根据数据绘制的图形之外的元素,常用的辅助元素包括坐标轴、标题、图例、网格、参考线、参考区域、注释文本和表格,它们都可以对图形进行补充说明。
用户2225445
2025/03/31
1040
Python数据可视化-第3章-图表辅助元素的定制
python绘图及可视化备课
于刊老师担心我准备的内容不够讲两节课的,如果我讲完这一章的内容还没有结束的话我就讲一讲我最近捣鼓的东西
十二惊惶
2024/02/28
3740
python绘图及可视化备课
画图实战-Python实现某产品全年销量数据多种样式可视化
注意:后续的数据和操作逻辑和前边的一样,为了快速了解其使用,不再描述详细的数据,仅用示例说明。
虫无涯
2024/03/14
5560
matplotlib - Pyplot 教程
matplotlib.pyplot 是命令样式函数的集合,使matplotlib像MATLAB一样工作。 每个pyplot函数对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一些线条,用标签装饰图形等。
量子态的沐子呓
2019/12/25
1.8K0
matplotlib - Pyplot 教程
matplotlib绘图基础[通俗易懂]
http://blog.csdn.net/pipisorry/article/details/37742423
全栈程序员站长
2022/09/01
6.5K0
matplotlib绘图基础[通俗易懂]
Python 绘图,我只用 Matplotlib(二)
上篇文章,我们了解到 Matplotlib 是一个风格类似 Matlab 的基于 Python 的绘图库。它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且我们也可以方便地将它作为绘图控件,嵌入GUI应用程序中。本文主要走进 Matplotlib 的世界,初步学会绘制图形。
猴哥yuri
2018/08/16
1.5K0
matplotlib安装及使用
matplotlib是基于python语言的开源项目,旨在为python提供一个数据绘图包。我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图。实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间。用户在熟悉了核心对象之后,可以轻易的定制图像。matplotlib的对象体系也是计算机图形学的一个优秀范例。即使你不是python程序员,你也可以从文中了解一些通用的图形绘制原则。matplotlib使用numpy进行数组运算,并调用一系列其他的python库来实现硬件交互。matplotlib的核心是一套由对象构成的绘图API。
狼啸风云
2023/10/07
5020
matplotlib安装及使用
【数学建模】——matplotlib简单应用
Matplotlib 是一个强大的 Python 可视化库,广泛应用于绘制各种图形。其基本用法包括导入必要的模块,如 numpy 和 matplotlib.pyplot,并生成数据进行绘图。例如,可以通过线图、散点图、柱状图和雷达图来展示数据。创建三维图形需要使用 mpl_toolkits.mplot3d 库。使用 matplotlib 进行可视化可以通过简单的代码实现,包括设置标签、图例、颜色和线型等,以生成直观的图表来分析和展示数据。
小李很执着
2024/08/05
1440
【数学建模】——matplotlib简单应用
数据可视化基础与应用-03-matplotlib库从入门到精通01-05
本系列是数据可视化基础与应用的第03篇,主要介绍基于matplotlib实现数据可视化。
用户2225445
2024/03/21
8770
数据可视化基础与应用-03-matplotlib库从入门到精通01-05
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
Matplotlib 是一个Python的 2D绘图库。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。 通过学习Matplotlib,可让数据可视化,更直观的真实给用户。使数据更加客观、更具有说服力。 Matplotlib是Python的库,又是开发中常用的库。
爱喝兽奶的熊孩子
2024/04/10
12.3K0
Python学习笔记之Matplotlib模块入门(直线图、折线图、曲线图、散点图、柱状图、饼状图、直方图、等高线图和三维图的绘制)
Python 数据可视化:Matplotlib库的使用
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 数据可视化:Matplotlib库的使用 ---- Python 数据可视化:Matplotlib库的使用 1.Matplotlib库简介 2.Matplotlib库安装 3.pyplot 3.1 基本绘图流程 3.2 常用方法 3.2.1 创建画布 3.2.2 创建子图并选定子图 3.2.3 为图
小嗷犬
2022/11/15
2.1K0
Python 数据可视化:Matplotlib库的使用
Matplotlib从入门到精通03-布局格式定方圆
参考: https://datawhalechina.github.io/fantastic-matplotlib/%E7%AC%AC%E4%B8%80%E5%9B%9E%EF%BC%9AMatplotlib%E5%88%9D%E7%9B%B8%E8%AF%86/index.html
用户2225445
2023/10/16
2890
Matplotlib从入门到精通03-布局格式定方圆
Matplotlib绘制六种可视化图表,值得收藏
可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的。对于初学者来说,很容易被这官网上众多的图表类型给吓着了,由于种类太多,几种图表的绘制方法很有可能会混淆起来。
double
2019/08/20
1.1K0
相关推荐
【数据可视化】Matplotlib 从入门到精通学习笔记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验