为了帮助你更好地掌握 matplotlib.pyplot(简称 plt)模块,以下总结了一些常用的函数及其关键参数,并解释了这些参数的作用。这将帮助你在编写代码时快速查阅和对照,进一步深化对 plt 的理解和应用。


常用 plt 函数及其关键参数

1. plt.plot()

用于绘制折线图,是最常用的绘图函数之一。

常用参数:

  • x: x 轴数据。
  • y: y 轴数据。
  • color (color='blue'): 线条颜色。
  • linestyle (linestyle='-'): 线条样式,如 '-'(实线)、'--'(虚线)、':'(点线)等。
  • marker (marker='o'): 数据点标记样式,如 'o'(圆点)、'x''s'(方块)等。
  • linewidth (linewidth=2): 线条宽度。
  • label (label='Data Label'): 图例标签。

示例:

plt.plot(x, y, color='red', linestyle='--', marker='x', linewidth=2, label='Sample Line')

2. plt.scatter()

用于绘制散点图,适合展示数据点的分布。

常用参数:

  • x: x 轴数据。
  • y: y 轴数据。
  • s (s=100): 点的大小。
  • c (c='green'): 点的颜色。
  • marker (marker='^'): 点的形状,如 'o'(圆点)、'^'(三角形)等。
  • alpha (alpha=0.5): 点的透明度,范围从 0(完全透明)到 1(不透明)。

示例:

plt.scatter(x, y, s=50, c='blue', marker='o', alpha=0.7)

3. plt.bar()

用于绘制柱状图,常用于展示分类数据。

常用参数:

  • x: 分类标签。
  • height: 每个分类的高度(值)。
  • width (width=0.8): 柱子的宽度。
  • color (color='skyblue'): 柱子的颜色。
  • align (align='center'): 柱子对齐方式,通常为 'center''edge'

示例:

plt.bar(categories, values, width=0.6, color='orange', align='center')

4. plt.hist()

用于绘制直方图,适合展示数据的分布情况。

常用参数:

  • x: 要绘制直方图的数据。
  • bins (bins=10): 直方图的柱数或分箱方式。
  • range (range=(0, 100)): 数据范围。
  • density (density=False): 是否归一化。
  • color (color='purple'): 直方图颜色。
  • alpha (alpha=0.75): 透明度。

示例:

plt.hist(data, bins=20, range=(0, 50), density=True, color='green', alpha=0.6)

5. plt.pie()

用于绘制饼图,展示各部分占总体的比例。

常用参数:

  • x: 各部分的大小。
  • labels (labels=['A', 'B', 'C']): 各部分的标签。
  • colors (colors=['red', 'blue', 'green']): 各部分的颜色。
  • autopct (autopct='%1.1f%%'): 百分比显示格式。
  • startangle (startangle=90): 起始角度。
  • explode (explode=(0, 0.1, 0)): 突出显示某部分。

示例:

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140, explode=(0, 0.1, 0, 0))

6. plt.imshow()

用于显示图像或热力图,适合展示矩阵数据。

常用参数:

  • X: 要显示的图像数据(二维数组)。
  • cmap (cmap='viridis'): 颜色映射。
  • interpolation (interpolation='nearest'): 插值方式,如 'nearest''bilinear' 等。
  • aspect (aspect='auto'): 长宽比。

示例:

plt.imshow(data, cmap='hot', interpolation='nearest', aspect='auto')
plt.colorbar()  # 添加颜色条

7. plt.errorbar()

用于绘制带误差条的图表,显示数据的不确定性。

常用参数:

  • x: x 轴数据。
  • y: y 轴数据。
  • yerr (yerr=error): y 方向的误差。
  • xerr (xerr=error): x 方向的误差。
  • fmt (fmt='-o'): 点的格式,如 '-o' 表示实线连接的圆点。
  • capsize (capsize=5): 误差条末端的横线长度。
  • elinewidth (elinewidth=1.5): 误差条线宽。
  • marker (marker='s'): 标记样式。

示例:

plt.errorbar(x, y, yerr=errors, fmt='-o', capsize=5, elinewidth=2, marker='s', color='blue')

8. plt.subplot()plt.subplots()

用于在同一个图形窗口中创建多个子图。

plt.subplot()

常用参数:

  • nrows: 子图的行数。
  • ncols: 子图的列数。
  • index: 子图的位置编号。

示例:

plt.subplot(2, 1, 1)  # 第一个子图(2 行 1 列中的第 1 个)
plt.plot(x1, y1)
plt.subplot(2, 1, 2)  # 第二个子图
plt.plot(x2, y2)

plt.subplots()

常用参数:

  • nrows: 子图的行数。
  • ncols: 子图的列数。
  • figsize (figsize=(10, 5)): 图形的大小。
  • sharex (sharex=True): 是否共享 x 轴。
  • sharey (sharey=True): 是否共享 y 轴。

示例:

fig, axes = plt.subplots(2, 2, figsize=(10, 8), sharex=True, sharey=True)
axes[0, 0].plot(x1, y1)
axes[0, 1].bar(categories, values)
axes[1, 0].scatter(x2, y2)
axes[1, 1].hist(data)
plt.tight_layout()  # 自动调整子图间距

9. plt.title()plt.xlabel()plt.ylabel()

用于设置图表的标题和坐标轴标签。

常用参数:

  • label: 标签文本。
  • fontsize (fontsize=14): 字体大小。
  • color (color='red'): 字体颜色。
  • fontweight (fontweight='bold'): 字体粗细。

示例:

plt.title('My Plot Title', fontsize=16, color='darkblue', fontweight='bold')
plt.xlabel('X Axis Label', fontsize=14)
plt.ylabel('Y Axis Label', fontsize=14)

10. plt.legend()

用于显示图例,帮助区分不同的数据系列。

常用参数:

  • loc (loc='upper right'): 图例位置,如 'upper right''lower left' 等。
  • fontsize (fontsize=12): 字体大小。
  • title (title='Legend'): 图例标题。

示例:

plt.plot(x, y, label='Data Series 1')
plt.scatter(x, y, label='Data Points')
plt.legend(loc='best', fontsize=12, title='Legend Title')

11. plt.grid()

用于添加网格线,便于观察数据。

常用参数:

  • visible (plt.grid(True)): 是否显示网格。
  • which (which='both'): 网格线类型,'major''minor''both'
  • axis (axis='both'): 作用轴,'x''y''both'
  • color (color='gray'): 网格线颜色。
  • linestyle (linestyle='--'): 网格线样式。
  • linewidth (linewidth=0.5): 网格线宽度。

示例:

plt.grid(True, which='both', axis='both', color='gray', linestyle='--', linewidth=0.5)

12. plt.tight_layout()

自动调整子图参数,使子图适应图形区域,避免标签重叠。

示例:

plt.tight_layout()

13. plt.savefig()

用于将图表保存为文件。

常用参数:

  • fname: 文件名,如 'figure.png''figure.pdf' 等。
  • dpi (dpi=300): 分辨率。
  • bbox_inches (bbox_inches='tight'): 包含所有图表元素。
  • format (format='png'): 文件格式。

示例:

plt.savefig('my_plot.png', dpi=300, bbox_inches='tight', format='png')

14. plt.axis()

用于设置坐标轴的范围或样式。

常用参数:

  • [xmin, xmax, ymin, ymax]: 设置坐标轴范围。
  • 'equal': 设置相等的缩放比例。
  • 'off': 隐藏坐标轴。

示例:

plt.axis([0, 10, 0, 100])  # 设置 x 轴从 0 到 10,y 轴从 0 到 100
plt.axis('equal')          # 设置相等的缩放比例

15. plt.text()

在图表中添加文本注释。

常用参数:

  • x: 文本的 x 坐标。
  • y: 文本的 y 坐标。
  • s: 文本内容。
  • fontsize (fontsize=12): 字体大小。
  • color (color='black'): 字体颜色。
  • ha (ha='center'): 水平对齐方式,如 'left''center''right'
  • va (va='center'): 垂直对齐方式,如 'top''center''bottom'

示例:

plt.text(5, 50, 'Mid Point', fontsize=12, color='red', ha='center', va='center')

关键 plt 函数参数总结

以下表格总结了一些常用 plt 函数的关键参数及其作用,便于查阅对照:

函数 参数 作用描述
plt.plot() color 设置线条颜色
linestyle 设置线条样式
marker 设置数据点标记样式
linewidth 设置线条宽度
label 设置图例标签
plt.scatter() s 设置点的大小
c 设置点的颜色
marker 设置点的形状
alpha 设置点的透明度
plt.bar() width 设置柱子的宽度
color 设置柱子的颜色
align 设置柱子的对齐方式
plt.hist() bins 设置直方图的柱数或分箱方式
range 设置数据范围
density 是否归一化
color 设置直方图颜色
alpha 设置透明度
plt.pie() labels 设置饼图标签
colors 设置各部分颜色
autopct 设置百分比显示格式
startangle 设置起始角度
explode 突出显示某部分
plt.imshow() cmap 设置颜色映射
interpolation 设置插值方式
aspect 设置长宽比
plt.errorbar() yerr 设置 y 方向误差
xerr 设置 x 方向误差
fmt 设置点的格式
capsize 设置误差条末端横线长度
elinewidth 设置误差条线宽
marker 设置标记样式
plt.subplot() nrows 设置子图行数
ncols 设置子图列数
index 设置子图位置编号
plt.subplots() nrows 设置子图行数
ncols 设置子图列数
figsize 设置图形大小
sharex 设置是否共享 x 轴
sharey 设置是否共享 y 轴
plt.title() fontsize 设置标题字体大小
color 设置标题颜色
fontweight 设置标题字体粗细
plt.legend() loc 设置图例位置
fontsize 设置图例字体大小
title 设置图例标题
plt.grid() which 设置网格线类型
axis 设置作用轴
color 设置网格线颜色
linestyle 设置网格线样式
linewidth 设置网格线宽度
plt.tight_layout() 自动调整子图参数
plt.savefig() fname 设置保存文件名
dpi 设置分辨率
bbox_inches 设置图形边界
format 设置文件格式
plt.axis() [xmin, xmax, ymin, ymax] 设置坐标轴范围
'equal' 设置相等缩放比例
'off' 隐藏坐标轴
plt.text() x, y 设置文本位置
s 设置文本内容
fontsize 设置文本字体大小
color 设置文本颜色
ha 设置水平对齐方式
va 设置垂直对齐方式

其他实用 plt 功能

1. 设置字体和样式

你可以通过 plt.rcParams 或在各函数中设置字体和样式参数来定制图表的整体风格。

示例:

plt.rcParams['font.size'] = 14  # 全局字体大小
plt.rcParams['font.family'] = 'Arial'  # 全局字体类型
plt.rcParams['axes.labelweight'] = 'bold'  # 坐标轴标签加粗

2. 刻度和标签定制

调整坐标轴的刻度和标签,可以更好地展示数据。

常用函数:

  • plt.xticks()plt.yticks(): 设置刻度的位置和标签。
  • plt.tick_params(): 调整刻度线和标签的样式。

示例:

plt.xticks(ticks=[0, 2, 4, 6, 8, 10], labels=['Zero', 'Two', 'Four', 'Six', 'Eight', 'Ten'], fontsize=12, rotation=45)
plt.yticks(fontsize=12)
plt.tick_params(axis='both', which='major', labelsize=12, length=6, width=2, colors='blue')

3. 添加注释

通过 plt.annotate() 在图表中添加注释或标记。

示例:

plt.plot(x, y, label='Data')
plt.annotate('Local Max', xy=(x_max, y_max), xytext=(x_max + 1, y_max + 10),
             arrowprops=dict(facecolor='black', shrink=0.05))

4. 调整图表布局

使用 plt.subplots_adjust() 手动调整子图间距。

示例:

plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1, wspace=0.4, hspace=0.4)

5. 交互式绘图

通过 %matplotlib inline(在 Jupyter Notebook 中)或其他后端支持,实现交互式绘图。

示例:

%matplotlib inline  # 在 Jupyter Notebook 中启用
import matplotlib.pyplot as plt

plt.ion()  # 开启交互模式
plt.plot(x, y)
plt.show()

推荐学习资源