Matplotlib 简明教程

Matplotlib - Introduction

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

它是一个跨平台库,用于从数组中的数据创建 2D 绘图。Matplotlib 用 Python 编写,并使用 NumPy,这是 Python 的数值数学扩展。它提供了一个面向对象 API,该 API 有助于使用 Python GUI 工具包(如 PyQt、WxPythonotTkinter)将绘图嵌入到应用程序中。它可以在 Python 和 IPython Shell 中使用。Jupyter 笔记本和 Web 应用程序服务器也是如此。

Matplotlib 具有一个名为 Pylab 的过程化界面,该界面旨在类似于由 MathWorks 开发的专有编程语言 MATLAB。Matplotlib 结合 NumPy 可被视为 MATLAB 的开源等效项。

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

使用 Matplotlib 最常见的途径是通过其 pyplot 模块。

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

Components of Matplotlib

plot intro

Figure

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

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

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

Axes/Subplot

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

Example

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

Axis

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

Example

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

Artist

艺术家是指构成绘图的各个组件或实体,如图形、轴、线、文本、块、形状(矩形或圆形)等。它们是用于创建可视化的构建模块,并按层次组织。

以下是类似于艺术家所有组件的绘图。

Example

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

Key Features

  1. Simple Plotting − Matplotlib 允许我们仅使用几行代码轻松创建基本绘图。

  2. Customization − 我们可以通过调整颜色、线条样式、标记、标签、标题等来广泛地自定义绘图。

  3. Multiple Plot Types − 它支持各种绘图类型,如折线图、散点图、条形图、直方图、饼图、3D 绘图等。

  4. Publication Quality − Matplotlib 生成高质量的绘图,适用于出版物和演示文稿,并具有可自定义的 DPI 设置。

  5. Support for LaTeX Typesetting − 我们可以在绘图中使用 LaTeX 来格式化文本和数学表达式。

Types of Plots

Matplotlib 支持以下提到的各种类型的绘图。每个绘图类型在库中都有自己独特的函数。

Name of the plot

Definition

Image

Line plot

折线图是一种通过直线线段连接数据点显示数据的图表。Matplotlib 库中的 plt.plot() 函数用于创建折线图。

Scatter plot

散点图是一种通过在二维平面上显示标记来表示各个数据点的图表。plt.scatter() 函数用于绘制散点图。

Line plot

折线图是一种通过直线线段连接数据点显示数据的图表。Matplotlib 库中的 plt.plot() 函数用于创建折线图。

Bar plot

条形图或条形图使用矩形条来直观表示类别数据。plt.bar() 函数用于绘制条形图。

Pie plot

饼图也称为圆形统计图。它是一种圆形统计图形,用于说明数值比例。它将一个圆形分割成扇形或切片来表示数据集中各个类别的相对大小或百分比。plt.pie() 函数用于绘制饼图。

上面提到的内容是 Matplotlib 库的基本图表。我们还可以借助 Matplotlib 对三维图表进行可视化。

Subplots

我们可以使用子图在单个图形中创建多个图表。当我们需要同时显示多个图表时,这是很有用的。

Saving Plots

Matplotlib 允许我们将图表保存为各种格式,例如 PNG、PDF、SVG 等。