Matplotlib (Python 绘图库)2025年3月17日 | 阅读16分钟 ![]() 与文本数据相比,人类思维更能适应数据的可视化表示。可视化后,事物更容易理解。图表是表示数据的更好方式,因为它使我们能够更有效地分析数据并根据数据分析做出具体决策。在学习 matplotlib 之前,了解数据可视化及其重要性是必要的。 数据可视化在展示结果方面,图形提供了一种探索数据的绝佳方法。 “数据可视化”这个术语是新的。它传达了数据表示不仅仅是图形表示(而不是文本表示)的概念。 ![]() 这有助于在学习和发现数据集时对模式、损坏数据、异常值以及更多内容进行分类。通过一点领域知识,数据可视化可用于在图表和图表中表达和演示关键关系。事实上,静态分析侧重于数据估计和定量描述。它为您提供了一套有用的工具来定性理解。 数据可视化有五种关键图表被使用。 ![]() 在组织做出决定之前,必须完成以下五个步骤 ![]()
为什么需要数据可视化?![]() 数据可视化可以执行以下任务
数据可视化优势数据可视化具有多种优势,有助于企业和组织做出更好的决策 1. 开发信息吸收方法 数据可视化使用户能够访问大量有关业务和运营状况的信息。理解多维数据集之间的关系有助于决策者。使用地图、热图和其他丰富的图形表示,它为数据分析提供了新颖的方法。 可视化数据发现更有可能找到组织所需的信息,从而导致公司比竞争对手更具生产力。 2. 可视化商业关系和模式 在当今竞争激烈的商业环境中,寻找运营状况与业务绩效之间的相关性至关重要,这是数据可视化的一个关键优势。 由于能够进行这种关联,管理人员可以快速识别问题的根本原因。 ![]() 假设一家食品公司正在查看其月度客户数据,并且数据以条形图的形式呈现,显示该组织的评分在过去几个月在特定地区下降了五分;数据表明客户满意度在该地区是一个问题。 3. 加速您对新兴趋势的响应 数据可视化使决策者能够更有效地理解跨多个数据集的客户行为和市场状况的变化。 通过了解客户情绪和其他数据,公司有机会在竞争对手之前抓住新的商业机会。 4. 地理可视化 这是因为许多网站提供网络服务并引起访问者的兴趣。此类网站需要利用客户信息中已有的基于位置的数据。 多平台数据可视化库 Matplotlib 是一个基于 Numpy 数组的 Python 库。它可以在 shell、Web 应用程序、Python 脚本和其他图形用户界面工具包中使用。 2002 年,John D. Hunter 提出了 matplotlib 的想法。它根据类似 BSD 的许可证分发,并拥有一个蓬勃发展的开发人员社区。最新版本 3.1.1 于 2019 年 7 月 1 日发布,第一个版本于 2003 年发布。 截至 2007 年 6 月 23 日,Python 版本 2.7 到 3.6 支持 Matplotlib 2.0.x。Matplotlib 1.2 开始支持 Python3。支持 Python 2.6 的最新 Matplotlib 版本是 1.4。 Matplotlib 的功能可以通过各种工具包得到增强。其中一些工具可以使用 matplotlib 源代码进行迁移,而另一些则需要外部依赖项,必须单独下载。
Matplotlib 架构matplotlib 的架构有三个不同的层,它们是:
后端层 绘图所需的各种函数在后端层实现,这是图形的底层。后端层有三个基本类:FigureCanvas,它是图形将被绘制的表面;Renderer,是处理表面上绘制的类;以及 Event,它处理鼠标和键盘事件。 Artist 层 架构的第二层是 Artist 层。它负责各种绘图功能,例如轴,它协调在图形画布上使用渲染器。 脚本层 最顶层是脚本层,我们的大部分代码将在那里运行。脚本层中的方法几乎自动处理其他层;我们唯一需要关心的是当前状态(图形和子图)。 Matplotlib 的总体思想一个 Matplotlib 图可以分解为以下部分 ![]() Matplotlib 的一般概念 图形
安装 Matplotlib在开始使用绘图函数或 Matplotlib 本身之前,必须先安装它。安装在您计算机上的发行版会影响 matplotlib 的安装方式。以下是安装方法 使用 Anaconda Python 发行版 下载 Anaconda Python 发行版是安装 Matplotlib 的最简单方法。Anaconda 发行版已包含 Matplotlib,因此无需额外安装。
![]()
![]() 使用 Anaconda Prompt 安装 Matplotlib 可以使用 Anaconda Prompt 通过输入命令来安装 Matplotlib。要安装 matplotlib,请打开 Anaconda Prompt 并键入以下命令 ![]() 使用 pip 安装 Matplotlib Python 包管理器 pip 也用于安装 matplotlib。打开命令提示符窗口,然后键入以下命令 验证安装要验证 matplotlib 是否已正确安装,请键入以下命令,包括在终端中调用.__version__。 绘图基本示例下面是生成简单图的基本示例,程序如下 输出 ![]() 使用 Python matplotlib 绘制简单图只需要三行代码。我们可以为 Python matplotlib 库创建的图表添加标题和标签,使其更有意义。示例如下 输出 ![]() 与之前的图相比,该图更易于理解。 使用 Pyplotmatplotlib.pyplot 中的一系列命令式函数在 matplotlib 中实现了类似 MATLAB 的功能。创建图形、在图形中创建绘图区域、绘制一些线条、用标签装饰绘图等,都是可以使用 pyplot 函数完成的一些事情。 当我们想快速绘制一些东西而无需创建任何图形或轴时,这是一个有用的工具。 在处理 matplotlib.pyplot 时,某些状态会在函数调用之间保持,以跟踪诸如当前图形和绘图区域之类的内容,并将这些绘图函数定向到当前轴。 pyplot 模块提供了常用的 plot() 函数来绘制图形。让我们看一个简单的例子 输出 ![]() 程序使用该程序绘制图形的 x 轴和 y 轴,范围从 0 到 5。如果我们向 plot() 函数提供单个列表,Matplotlib 会自动生成 x 值,假设它是一个 y 值序列。默认的 x 向量与 y 向量的长度相同,但从 0 开始,因为我们知道 Python 索引从 0 开始。因此,[0, 1, 2, 3, 4,] 是 x 数据。 我们可以传递任意数量的参数给 plot()。例如,要绘制 x 与 y 的关系,我们可以这样做: 输出 ![]() 格式化绘图样式 第三个参数是可选的,它是一个格式字符串,指定了绘图的颜色和线型。如上绘制的图形所示,默认格式字符串是“b-”,即实心蓝色。考虑以下插图,其中绘制了带红圆圈的图形。 输出 ![]() 示例格式字符串
matplotlib 支持以下颜色缩写
使用分类变量绘图Matplotlib 允许我们将分类变量直接传递给许多绘图函数:考虑以下示例 输出 ![]() 在上面的程序中,我们使用 **subplot()** 函数绘制了分类图。让我们看一下 subplot() 函数。 什么是 subplot()在单个图形中绘制两个或多个绘图是 Matplotlib subplot() 函数的定义方式。此技术可用于分离在同一轴上绘制的两个图形。Matplotlib 支持所有子图,包括 2x2 网格、2x1 垂直和 2x1 水平子图。 它接受三个参数:Nrows、ncols 和 index。它们分别表示索引、行数和列数。 可以按以下方式调用 subplot() 函数 参数
子图的位置由三位数整数或三个单独的整数指定。在具有 nrows 行和 ncol 列的网格上,如果三个整数分别是 nrows、ncols 和 index,则子图将占据索引位置。 参数 pos 是一个三位数整数,第一位数表示行数,第二位数表示列数,第三位数表示子图的索引。例如,子图与 subplot (132) 相同。 注意:传入的整数必须小于 10。
subplot() 函数还接受返回的轴基类的关键字参数。 请看以下示例 创建不同类型的图1. 折线图折线图是显示信息作为一系列线状的图表之一。图表由 plot() 函数绘制。折线图易于绘制,让我们看下面的例子 输出 ![]() 我们可以通过导入样式模块来自定义图形。样式模块将内置到 matplotlib 安装中。它包含各种函数,可以使绘图更具吸引力。在下面的程序中,我们正在使用样式模块 输出 ![]() 在 Matplotlib 中,图形(plt.Figure 类的实例)可以被视为一个单一的容器,其中包含表示轴、图形、文本和标签的所有对象。 示例-3 输出 ![]() matplotlib 提供了 **fill_between()** 函数,该函数用于根据用户定义的逻辑填充线条周围的区域。 示例 4输出 ![]() 2. 条形图条形图是最常见的图表类型之一,用于显示与分类变量相关的数据。Matplotlib 提供 **bar()** 来创建条形图,它接受以下参数:分类变量、它们的值和颜色。 输出 ![]() 另一个函数 **barh()** 用于创建水平条形图。它接受 **xerr** 或 **yerr** 作为参数(在垂直图形的情况下)来描绘我们数据中的方差,如下所示 输出 ![]() 让我们看另一个使用 **style()** 函数的例子 输出 ![]() 与垂直堆叠类似,条形图通过使用 bottom 参数堆叠在一起,并定义我们想要堆叠在下方并具有其值的条形图。 输出 ![]() 3. 饼图饼图是一个圆形图,它被分解成扇形或饼的切片。它通常用于表示百分比或比例数据,其中每个饼的切片代表一个特定的类别。让我们看下面的例子 输出 ![]() 4. 直方图理解条形图和直方图之间的区别是第一步。条形图用于比较不同的实体,而直方图用于表示分布。直方图是一种条形图,它将一组值的频率与一个值范围进行比较。 例如,我们绘制一个关于 bin 的直方图,使用来自不同年龄组的数据。现在,由 bin 表示的值范围被划分为一系列区间。大多数 bin 的大小相同。 输出 ![]() 让我们看另一个绘制直方图的例子 输出 ![]() 5. 散点图在确定一个变量对另一个变量有多大影响时,散点图通常用于比较变量。数据表示为一系列点。一个变量的值决定了点在水平和垂直轴上的位置,分配给每个点。另一方面,另一个变量的值分配给每个点。 让我们看下面的简单例子 示例-1 输出 ![]() 示例-2 输出 ![]() 6. 3D 图形绘制Matplotlib 最初是为二维绘图开发的。它的 1.0 版本建立在二维显示之上,具有一些三维绘图实用程序,结果是一套方便的三维数据可视化工具。 可以通过导入 **mplot3d** 工具包来创建三维图,该工具包包含在主要的 Matplotlib 安装中。 当此模块导入到程序中时,可以通过将关键字 **projection='3d'** 传递给任何常规的轴创建例程来创建三维轴。 让我们看一个简单的 3D 图 示例-1 输出 ![]() 示例-2 输出 ![]() 注意:我们可以使用 plot3D() 来绘制简单的 3D 折线图。示例-3 输出 ![]() Matplotlib 的重要函数
本教程涵盖了 Python 库 matplotlib,对数据可视化进行了简要概述,以及数据可视化在组织决策过程中的重要性。为了提供数据的可视化表示,我们绘制了各种类型的图形。 |
我们请求您订阅我们的新闻通讯以获取最新更新。