iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中Matplotlib怎么用
  • 869
分享到

Python中Matplotlib怎么用

2023-06-25 15:06:43 869人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python中Matplotlib怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。0. 前言为了方便以下举例说明,我们先导入需要的几个库。以下代码在Jupyter Note

这篇文章将为大家详细讲解有关python中Matplotlib怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

0. 前言

为了方便以下举例说明,我们先导入需要的几个库。以下代码在Jupyter Notebook中运行。

%matplotlib inline     import matplotlib.pyplot as pltimport numpy as npimport pandas as pd

1. 创建Figure的两种基本方法

1.1 第1种方法

注意,Figure在Matplotlib中是一个专有名词(后面会有解释),Matplotlib把你的数据以图的形式绘制在Figure(比如说,windows, Jupyter wgets, etc.)中。创建一个Figure的基本方式之一就是使用pyplot.subplots.
如下所示,我们用pyplot.subplots创建了一个Figure,其中包含一个axes(同样,这是一个Matplotlib专有名词,后面再进行解释),然后再利用axes.plot画图。

fig, ax = plt.subplots()  # Create a figure containing a single axes.x    = np.arange(100)Fs   = 100  # 100Hz sampling rateFsin = 2    # 2Hz y = np.sin(2*np.pi*Fsin*(1/Fs)*x)ax.plot(x, y)  # Plot some data on the axes.

以上代码画了一个正弦波的波形。

Python中Matplotlib怎么用

1.2 第2种方法

许多其它的绘图工具库或者语言并不要求你必须显式地(explicity)先创建一个Figure以及axes,比如说在Matlab中,你直接如下所示一样直接调用plot()函数就一步到位地得到所想要的图,如果现成的axes的话,matlab会为你创建一个.

plot([1, 2, 3, 4], [1, 4, 2, 3]) % MATLAB plot.

事实上,你也可以以这种方式使用Matplotlib。对于每一个axes的绘图方法,matplotlib.pyplot模块中都有一个对应的函数执行在当前axes上画一个图的功能,如果还没有已经创建好的axes的话,就先为你创建一个Figure和axes,正如在Matlab中一样。因此以上例子可以更简洁地写为:

plt.plot(x, y)  # Call plt.plot() directly

同样会得到以上相同的图。

2. Figure的解剖图及各种基本概念

Python中Matplotlib怎么用

上图出自Ref1。图中给出了matplotlib中Figure(没有想好这个到底应该怎么翻译。本来想是不是可以译成画布,但是画布对应英文中的canvas。而Figure的说明中明确指出了Figure包含了Canvas,如果说Canvas是指画布的话,那Figure其实是指整个一幅画。还是不勉强吧,直接用英语单词好了)

2.1 Figure

The whole figure.整幅画或整个图。Figure保持其中所有的child axes的信息,以及一些特殊的artists (titles, figure legends, etc)(这里artist又是很难翻译的一个词,指的是标题、图例等图的说明性信息对象),以及画布(canvas)。
可以说Figure是幕后的大Boss管理着所有的信息,是它真正执行为你绘制图画的动作。但是作为用户,它反而是不太显眼的,对你来说多少有点隐形的样子。一个Figure中可以包含任意多个axes,通常至少包含一个。

以下是创建Figure的几种方式,其中前两种在上面的例子已经介绍,也是常用的。
最后一种是创建一个空的Figure,可以在之后给它添加axes。这种做法不常见,属于高阶用法,方便高阶用户进行更加灵活的axes布局。

fig, ax = plt.subplots()  # a figure with a single Axesfig, axs = plt.subplots(2, 2)  # a figure with a 2x2 grid of Axesfig = plt.figure()  # an empty figure with no Axes

2.2 Axes

Axes原本是axis(坐标)的复数,所以可以翻译成坐标系?就这么理解着吧。一个给定的Figure可以包含多个axes,但是一个axes对象只能存在于一个Figure中。(按坐标系理解的话,故名思意)一个Axes包含多个axis,比如说在2D(2维)的图中有两个坐标轴,在3D(3维)图中有三个坐标轴。
在一个axes中可以通过以下一些方法来设置图的一些属性:
set_xlim(),set_ylim():分别用于设置x轴、y轴的表示范围
set_title():设置图的标题
set_xlabel(),set_ylabel(): 分别用于设置x轴和y轴的标签

Axes类和它的成员函数是matplolib的面向对象的界面的主要入口(关于面向对象接口与pyplot接口参见后面的说明)

2.3 Axis

这个就是我们常说的坐标轴。不再赘述。事实上,越解释越糊涂。。。有兴趣的小伙伴可以看看matplotlib文档的原始说明,反正我是越看越晕。。。还不如直接看代码例直到怎么使用就可以了。

2.4 Artist

Basically, everything you can see on the figure is an artist (even the Figure, Axes, and Axis objects). This includes Text objects, Line2D objects, collections objects, Patch objects ... (you get the ea). When the figure is rendered, all of the artists are drawn to the canvas. Most Artists are tied to an Axes; such an Artist cannot be shared by multiple Axes, or moved from one to another.

晕菜。。。同上,还不如直接看代码例直到怎么使用就可以了^-^

3. 绘图函数的输入

所有的绘图函数都接受numpy.array or numpy.ma.masked_array作为输入。
像pandas中的数据对象以及numpy.matrix等类似于数组('array-like')的对象如果直接用于绘图函数的输入的话有可能会产生意想不到的结果。所以最好把它们先转换成numpy.array对象再传递给绘图函数。

# For example, to convert a pandas.DataFramea = pd.DataFrame(np.random.rand(4, 5), columns = list('abcde'))a_asarray = a.values # and to convert a numpy.matrixb = np.matrix([[1, 2], [3, 4]])b_asarray = np.asarray(b)

4. 面向对象接口与pyplot接口

如上所述,有两种基本的使用Matplotlib的方法。

(1) 显式地创建Figure和axes,然后调用方法作用于它们,这个称之为面向对象风格。

(2) 直接调用pyplot进行绘图,这个姑且称之为快捷风格吧

面向对象风格的使用方法示例:

x = np.linspace(0, 2, 100) # Note that even in the OO-style, we use `.pyplot.figure` to create the figure.fig, ax = plt.subplots()  # Create a figure and an axes.ax.plot(x, x, label='linear')  # Plot some data on the axes.ax.plot(x, x**2, label='quadratic')  # Plot more data on the axes...ax.plot(x, x**3, label='cubic')  # ... and some more.ax.set_xlabel('x label')  # Add an x-label to the axes.ax.set_ylabel('y label')  # Add a y-label to the axes.ax.set_title("Simple Plot")  # Add a title to the axes.ax.legend()  # Add a legend.

快捷(pyplot)风格的使用方法示例:

x = np.linspace(0, 2, 100) plt.plot(x, x, label='linear')  # Plot some data on the (implicit) axes.plt.plot(x, x**2, label='quadratic')  # etc.plt.plot(x, x**3, label='cubic')plt.xlabel('x label')plt.ylabel('y label')plt.title("Simple Plot")plt.legend()

以上代码中同时给出了两种风格中的label、title、legend等设置的方法或函数使用例。

以上两段代码示例产生同样的绘图效果:

Python中Matplotlib怎么用

此外,还有第三种方法,用于在GUI应用中的嵌入式Matplotlib。这个属于进阶用法,在本文就不做介绍了。

面向对象风格和pyplot风格功能相同同样好用,你可以选择使用任何一种风格。但是最好选定其中一种使用,不要昏庸。一般来说,建议仅在交互式绘图(比如说在Jupyter notebook)中使用pyplot风格,而在面向非交互式绘图中则推荐使用面向对象风格。

注意,在一些比较老的代码例中,你还可以看到使用pylab接口。但是现在不建议这样用了(This approach is strongly discouraged nowadays and deprecated)。这里提一嘴只是因为偶尔你还可能看到它,但是,在新的代码不要用就好了。

5. 绘图复用实用函数例

通常我们会发现需要重复绘制很多相类似的图,只是采用不同的数据而已。为了提高效率减少错误,可以考虑将一些绘图处理封装成一个函数,以便于重复使用,避免过多的冗余代码。以下是一个这样的模板例子:

def my_plotter(ax, data1, data2, param_dict):    """    A helper function to make a graph    Parameters    ----------    ax : Axes        The axes to draw to    data1 : array       The x data    data2 : array       The y data    param_dict : dict       Dictionary of kwargs to pass to ax.plot    Returns    -------    out : list        list of artists added    """    out = ax.plot(data1, data2, **param_dict)    return out

然后你可以以如下方式使用:

x = np.linspace(0, 5, 20)fig, ax = plt.subplots()x2 = x**2x3 = x**3my_plotter(ax, x, x2, {'marker': 'o'})my_plotter(ax, x, x3, {'marker': 'd'})

Python中Matplotlib怎么用

或者,如果你需要多个子图的话,

x = np.linspace(0, 5, 20)x2 = x**2x3 = x**3fig, (ax1, ax2) = plt.subplots(1, 2)my_plotter(ax1, x, x2, {'marker': 'x'})my_plotter(ax2, x, x3, {'marker': 'o'}) fig, ax = plt.subplots(1, 2)my_plotter(ax[0], x, x2, {'marker': 'x'})my_plotter(ax[1], x, x3, {'marker': 'o'})

Python中Matplotlib怎么用

注意,如以上代码例所示,当创建了多个子图时,有两种引用axes的方式。第一种方式中,创建时直接将两个axes(每个子图对应一个axes)赋给ax1和ax2。第一种方式中,创建时直接将两个axes赋给一个axes数组ax,然后以ax[0]和ax[1]的格式进行引用。

Ref1: Usage Gue — Matplotlib 3.4.3 documentation

关于“Python中Matplotlib怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Python中Matplotlib怎么用

本文链接: https://www.lsjlt.com/news/305723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中Matplotlib怎么用
    这篇文章将为大家详细讲解有关Python中Matplotlib怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。0. 前言为了方便以下举例说明,我们先导入需要的几个库。以下代码在Jupyter Note...
    99+
    2023-06-25
  • python中怎么用matplotlib绘图
    要使用matplotlib绘图,需要先安装matplotlib库。可以使用以下命令安装:```pip install matplot...
    99+
    2023-09-20
    matplotlib python
  • Python中怎么用Matplotlib绘制图表
    这篇文章主要介绍“Python中怎么用Matplotlib绘制图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中怎么用Matplotlib绘制图表”文章能帮助大家解决问题。前言Matp...
    99+
    2023-06-28
  • 怎么在Python中使用matplotlib绘图
    今天就跟大家聊聊有关怎么在Python中使用matplotlib绘图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python有哪些常用库python常用的库:1.requesuts...
    99+
    2023-06-14
  • python中怎么安装及使用matplotlib库
    要安装matplotlib库,可以使用pip命令,在命令行中输入以下命令: pip install matplotlib 安装完成后...
    99+
    2023-10-21
    python matplotlib
  • Python中怎么用matplotlib绘制直方图
    这篇文章主要介绍“Python中怎么用matplotlib绘制直方图”,在日常操作中,相信很多人在Python中怎么用matplotlib绘制直方图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中...
    99+
    2023-06-21
  • Python中怎么使用Matplotlib库绘制图形
    这篇文章主要介绍“Python中怎么使用Matplotlib库绘制图形”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中怎么使用Matplotlib库绘制图形”文章能帮助大家解决问题。一、...
    99+
    2023-07-02
  • 怎么在python中使用pip安装matplotlib库
    本篇文章为大家展示了怎么在python中使用pip安装matplotlib库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先在python里安装pip,打开安装python的文件夹,找到pytho...
    99+
    2023-06-06
  • python绘图模块matplotlib怎么用
    这篇文章给大家分享的是有关python绘图模块matplotlib怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。    上周对线上某几个磁盘进行了fio硬盘性能测试,测试完成之...
    99+
    2023-06-14
  • python怎么用matplotlib生成图表
    要使用 matplotlib 在 python 中生成图表,请遵循以下步骤:安装 matplotlib 库。导入 matplotlib 并使用 plt.plot() 函数生成图表。自定义...
    99+
    2024-05-05
    python 可视化数据 排列
  • python必备库Matplotlib怎么使用
    本篇内容介绍了“python必备库Matplotlib怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:Matplotlib 通常...
    99+
    2023-06-29
  • python中怎么使用matplotlib调整图例位置
    这篇文章主要讲解了“python中怎么使用matplotlib调整图例位置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中怎么使用matplotlib调整图例位置”吧!前言mat...
    99+
    2023-07-02
  • 怎么在python安装matplotlib
    python安装matplotlib的步骤:1、确保你已经安装了Python,可以用“python --version”命令来检查Python是否已安装;2、打开终端或命令提示符,输入“pip install matplotlib”安装Ma...
    99+
    2023-12-09
    python Matplotlib
  • 怎么用Python matplotlib实现折线图
    这篇文章主要介绍“怎么用Python matplotlib实现折线图”,在日常操作中,相信很多人在怎么用Python matplotlib实现折线图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-29
  • 怎么使用Python的Matplotlib库绘图
    这篇“怎么使用Python的Matplotlib库绘图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Python的M...
    99+
    2023-07-02
  • Python 可视化matplotlib模块怎么用
    这篇文章主要为大家展示了“Python 可视化matplotlib模块怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python 可视化matplotlib模块怎么用”...
    99+
    2023-06-21
  • python中如何使用Matplotlib库
    这篇文章将为大家详细讲解有关python中如何使用Matplotlib库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台交互...
    99+
    2023-06-02
  • Python中Matplotlib图像怎么添加标签
    一、添加文本标签 plt.text()用于在绘图过程中,在图像上指定坐标的位置添加文本。需要用到的是plt.text()方法。其主要的参数有三个:plt.text(x, y, s)其中x、y表示传入点的x和y轴坐标。s表示字符串。需要注意的...
    99+
    2023-05-14
    Python Matplotlib
  • 怎么用Python matplotlib plotly绘制图表
    这篇文章主要讲解了“怎么用Python matplotlib plotly绘制图表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python matplo...
    99+
    2023-06-29
  • Python 使用 matplotlib
    3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3D文字等的绘制。 准备工作...
    99+
    2023-01-31
    Python matplotlib
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作