概述
Matplotlib是一个用于绘制图表和可视化数据的Python库,由John D. Hunter于2003年创建。它是一个开源项目,广泛应用于科研、教育和工程等领域。Matplotlib提供了广泛的绘图功能,适用于科学计算、数据分析、机器学习等领域,并且尤其适用于中小规模的数据集和对可视化定制要求较高的场景。
Matplotlib的主要特点包括:
- 广泛的图表类型:支持多种图表类型,包括线图、散点图、柱状图、饼图、等高线图等,适用于不同类型的数据可视化需求。
- 直观而灵活的绘图工具:用户可以通过简单的代码创建高质量的图表,并对其进行自定义,以满足特定的可视化需求。
- 渐进、交互式实现数据可视化:Matplotlib支持以渐进和交互式的方式实现数据可视化,使得用户能够更深入地探索和理解数据。
Matplotlib创建图表主要有两种模式:面向对象模式(Object-Oriented API)和pyplot模式(pyplot API)。
一、pyplot模式(pyplot API):
pyplot模式提供了一种MATLAB风格的接口,它提供了一系列函数,允许用户以简单、直接的方式创建图表。在这种模式下,用户不需要显式地创建Figure和Axes对象,pyplot会自动管理这些对象。这使得代码更加简洁,易于理解和编写。
以下是一个使用pyplot模式创建简单折线图的示例:
import matplotlib.pyplot as plt
# 生成数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 使用pyplot绘制折线图
plt.plot(x, y)
# 显示图表
plt.show()
运行结果:
二、面向对象模式(Object-Oriented API):
在这种模式下,用户会首先创建一个Figure对象,这可以看作是一个画布。然后,在这个Figure对象上,用户会创建一个或多个Axes对象,这些Axes对象就是用于绘制图表的具体区域。用户可以针对每个Axes对象进行图表的绘制和定制。这种模式提供了更大的灵活性和控制力,允许用户更精细地控制图表的各个部分。
以下是一个使用面向对象模式创建简单折线图的示例:
import matplotlib.pyplot as plt
# 创建画布,
fig,ax = plt.subplots(figsize=(10,5))
# 使用Axes对象绘制折线图
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
ax.plot(x, y)
# 显示图表
plt.show(fig)
运行结果:
这两种模式各有优缺点。面向对象模式提供了更大的灵活性和控制力,适合对图表进行更精细的定制;而pyplot模式则更加简洁直观,适合快速绘制简单的图表。用户可以根据自己的需求选择合适的模式。
三、创建图表详细流程
本次主要用pyplot模式来讲解创建图表的主要流程
(一)创建画布(figure)
figure() 是 Matplotlib 库中用于创建一个新的图形窗口的函数,它返回一个 Figure 对象,该对象可以被视为一个画布,用于绘制图表和其他图形元素。
1.函数格式
python
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=