为了帮助你更好地掌握 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
的最权威资源,包含详细的函数说明和示例。