为了帮助你更好地掌握 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()
推荐学习资源
- 官方文档: Matplotlib 官方文档 是学习
plt的最权威资源,包含详细的函数说明和示例。










