本文详细介绍 Matplotlib 的基础知识,包括:
Matplotlib 是 Python 最流行的绘图库之一,它提供了一个完整的 2D 绘图系统,可以生成各种静态、动态、交互式的可视化图表。Matplotlib 的设计理念是让简单的事情保持简单,让复杂的事情变得可能。
与 Seaborn 比较
与 Plotly 比较
与 Bokeh 比较
# 使用 pip 安装
pip install matplotlib
# 使用 conda 安装
conda install matplotlib
# 标准导入方式
import matplotlib.pyplot as plt
# 在 Jupyter Notebook 中显示图形
%matplotlib inline
# 设置中文字体支持
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
import matplotlib
print(f"Matplotlib 版本: {matplotlib.__version__}")
Figure 是 Matplotlib 中最顶层的容器,它包含了所有的绘图元素。
# 创建图形
fig = plt.figure(figsize=(8, 6)) # 设置图形大小
fig.suptitle('图形标题') # 设置图形标题
Axes 是 Figure 中的绘图区域,包含了坐标轴、刻度、标签等。
# 创建坐标轴
ax = fig.add_subplot(111) # 创建单个子图
ax.set_title('子图标题') # 设置子图标题
ax.set_xlabel('X轴') # 设置X轴标签
ax.set_ylabel('Y轴') # 设置Y轴标签
Axis 是坐标轴对象,负责刻度和标签的显示。
# 设置刻度
ax.xaxis.set_major_locator(plt.MultipleLocator(1)) # 设置主刻度间隔
ax.yaxis.set_major_formatter(plt.FormatStrFormatter('%.1f')) # 设置刻度格式
Artist 是 Matplotlib 中所有可见对象的基类,包括图形、坐标轴、文本等。
# 创建文本对象
text = plt.Text(0.5, 0.5, '文本', transform=ax.transAxes)
ax.add_artist(text)
显式接口使用面向对象的方式创建和操作图形,代码更清晰,更易于维护。
# 创建图形和坐标轴
fig, ax = plt.subplots(figsize=(8, 6))
# 绘制数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
ax.plot(x, y, label='sin(x)')
# 设置属性
ax.set_title('正弦函数')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
ax.legend()
# 显示图形
plt.show()
隐式接口使用 pyplot 模块的函数直接绘图,代码更简洁,适合快速绘图。
# 直接绘图
plt.figure(figsize=(8, 6))
plt.plot(x, y, label='sin(x)')
plt.title('正弦函数')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.legend()
plt.show()
在实际应用中,可以根据需要混合使用两种风格。
# 创建图形和坐标轴
fig, ax = plt.subplots(figsize=(8, 6))
# 使用 pyplot 函数
plt.title('混合风格示例')
# 使用面向对象方法
ax.plot(x, y, label='sin(x)')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
ax.legend()
plt.show()
Matplotlib 基础部分涵盖了:
掌握这些基础知识对于使用 Matplotlib 进行数据可视化至关重要,它可以帮助我们:
建议在实际项目中注意: