Matplotlib - 简介



Matplotlib 是 Python 中一个强大且广泛使用的绘图库,它使我们能够创建各种静态、交互式和出版质量的绘图和可视化效果。它被广泛用于数据可视化任务,并提供各种功能来创建诸如折线图、散点图、条形图、直方图、3D 图等绘图。Matplotlib 库提供了灵活性和自定义选项,可以根据特定需求定制我们的绘图。

它是一个跨平台库,用于根据数组中的数据绘制二维图。Matplotlib 使用 Python 编写,并利用 NumPy,它是 Python 的数值数学扩展。它提供了一个面向对象的 API,有助于使用 Python GUI 工具包(如 PyQt、WxPython 或 Tkinter)将绘图嵌入应用程序中。它可以在 Python 和 IPython shell 中使用。Jupyter Notebook 和 Web 应用程序服务器也可以。

Matplotlib 具有一个名为 Pylab 的过程接口,该接口旨在类似于 MATLAB,MATLAB 是 MathWorks 开发的一种专有编程语言。Matplotlib 以及 NumPy 可以被认为是 MATLAB 的开源等价物。

Matplotlib 最初由 John D. Hunter 于 2003 年编写。当前稳定版本是 2018 年 1 月发布的 2.2.0。

使用 Matplotlib 最常见的方法是通过其 pyplot 模块。

以下是 Matplotlib 关键组件和功能的深入概述:

Matplotlib 的组件

Plot Intro

图形

图形是显示我们的绘图或绘图集合的整个窗口或页面。它充当一个容器,包含图形表示的所有元素,包括轴、标签、图例和其他组件。

示例

这是表示图形的基本绘图。

import matplotlib.pyplot as plt
# Create a new figure
fig = plt.figure()

# Add a plot or subplot to the figure
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
输出
Figure

轴/子图

图形中绘制数据的特定区域。图形可以包含多个轴或子图。以下是轴/子图的示例。

示例

import matplotlib.pyplot as plt
# Creating a 2x2 grid of subplots
fig, axes = plt.subplots(nrows=2, ncols=2)

# Accessing individual axes (subplots)
axes[0, 0].plot([1, 2, 3], [4, 5, 6])  # Plot in the first subplot (top-left)
axes[0, 1].scatter([1, 2, 3], [4, 5, 6])  # Second subplot (top-right)
axes[1, 0].bar([1, 2, 3], [4, 5, 6])  # Third subplot (bottom-left)
axes[1, 1].hist([1, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5])  # Fourth subplot (bottom-right)
plt.show()

输出

Axes Subplot

坐标轴

坐标轴指的是绘图中的 X 轴或 Y 轴,或者它也可以表示一组子图中的单个轴。了解轴对于控制和自定义 Matplotlib 中绘图的外观和行为至关重要。以下是包含坐标轴的绘图。

示例

import matplotlib.pyplot as plt
# Creating a plot
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])

# Customizing axis limits and labels
plt.xlim(0, 5)
plt.ylim(0, 35)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()

输出

Axis

图形对象

图形对象指的是构成绘图的各种组件或实体,例如图形、轴、线条、文本、补丁、形状(矩形或圆形)等。它们是用于创建可视化的构建块,并以层次结构组织。

以下是类似于图形对象所有组件的绘图。

示例

import matplotlib.pyplot as plt
# Create a figure and an axis (subplot)
fig, ax = plt.subplots()

# Plot a line (artist)
line = ax.plot([1, 2, 3], [4, 5, 6], label='Line')[0]

# Modify line properties
line.set_color('red')
line.set_linewidth(2.5)

# Add labels and title (text artists)
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_title('Artist Plot')
plt.legend()
plt.show()

输出

Artist

主要特征

  • 简单绘图 - Matplotlib 允许我们仅用几行代码轻松创建基本绘图。

  • 自定义 - 我们可以通过调整颜色、线型、标记、标签、标题等来广泛自定义绘图。

  • 多种绘图类型 - 它支持各种绘图类型,例如折线图、散点图、条形图、直方图、饼图、3D 图等。

  • 出版质量 - Matplotlib 生成适合出版物和演示文稿的高质量绘图,并具有可自定义的 DPI 设置。

  • 支持 LaTeX 排版 - 我们可以使用 LaTeX 格式化绘图中的文本和数学表达式。

绘图类型

Matplotlib 支持各种类型的绘图,如下所述。每种绘图类型在库中都有自己的函数。

绘图名称 定义 图像
折线图

折线图是一种图形,它显示由直线段连接的数据点。

matplotlib 库的 plt.plot() 函数用于创建折线图。

simple plot
散点图

散点图是一种图形,它通过在二维平面上显示为标记来表示单个数据点。

plt.scatter() 函数用于绘制散点图。

simple plot
折线图

折线图是一种图形,它显示由直线段连接的数据点。

matplotlib 库的 plt.plot() 函数用于创建折线图。

simple scatter
条形图

条形图或条形图是使用矩形条形对分类数据进行可视化表示。

plt.bar() 函数用于绘制条形图。

Bar Plot
饼图

饼图也称为饼图。它是一种圆形统计图形,用于说明数值比例。它将一个圆分成扇形或切片,以表示数据集中类别的大小或百分比。

plt.pie() 函数用于绘制饼图。

Pie Plot

上面提到的都是 matplotlib 库的基本绘图。我们还可以借助 Matplotlib 可视化 3D 绘图。

子图

我们可以使用子图在一个图形中创建多个绘图。当我们想要一起显示多个绘图时,这很有用。

保存绘图

Matplotlib 允许我们以各种格式保存我们的绘图,例如 PNG、PDF、SVG 等。

广告