Matplotlib 绘图秘籍:从基础到高级的 100 个技巧大汇总。
今天分享使用Python中二维绘图库Matplotlib的100个技巧:
1 基础绘图
- 使用
import matplotlib.pyplot as plt
导入Matplotlib。 - 使用
plt.plot()
创建简单的折线图。 - 通过颜色、线型和标记等参数自定义绘图外观。
- 使用
plt.show()
显示绘图。 - 使用
plt.savefig()
将绘图保存为图像文件。
2 折线图
- 多次使用
plt.plot()
在同一图表上绘制多条折线。 - 使用
plt.legend()
为折线添加标签。 - 使用
'--'
、'-.'
或':'
等选项自定义线型。 - 使用
linewidth
参数控制线宽。 - 使用
plt.scatter()
突出显示绘图上的特定点。
3 散点图
- 使用
plt.scatter()
创建散点图。 - 调整标记的大小和颜色。
- 使用颜色映射获取不同的标记颜色。
- 使用
plt.colorbar()
为绘图添加颜色条。 - 使用
plt.errorbar()
在散点图中包含误差线。
4 柱状图
- 使用
plt.bar()
生成柱状图,使用plt.barh()
生成水平柱状图。 - 自定义柱状的宽度和颜色。
- 显示分组或堆积柱状图。
- 使用
plt.text()
在柱状图上添加数值注释。
5 直方图
- 使用
plt.hist()
创建直方图。 - 调整 bins 的数量以获得更好的展示效果。
- 使用
density
参数显示概率密度而非计数。 - 在同一绘图上叠加多个直方图。
6 饼图
- 使用
plt.pie()
生成饼图。 - 为每个扇形指定颜色。
- 使用
explode
参数突出显示特定扇形。 - 使用
autopct
显示百分比标签。
7 子图
- 使用
plt.subplots()
创建子图。 - 使用
plt.subplot()
或plt.GridSpec()
控制布局网格。 - 使用
sharex
和sharey
参数在子图之间共享坐标轴。 - 使用
plt.subplots_adjust()
自定义子图之间的间距。
8 注释和文本
- 使用
plt.text()
或plt.annotate()
向绘图添加文本。 - 使用箭头注释特定的数据点。
- 在文本中包含LaTeX风格的数学表达式。
- 使用
plt.title()
显示标题。
9 坐标轴和刻度
- 使用
plt.xlabel()
和plt.ylabel()
自定义坐标轴标签。 - 使用
plt.xlim()
和plt.ylim()
设置坐标轴范围。 - 使用
plt.xticks()
和plt.yticks()
控制坐标轴刻度和标签。 - 使用
plt.xticks()
和plt.yticks()
更改刻度位置和标签。
10 网格和边框
- 使用
plt.grid()
为绘图添加网格。 - 使用线型、颜色和线宽自定义网格外观。
- 使用
plt.spines
移除绘图的边框。 - 控制边框的可见性和样式。
11 颜色映射
- 使用颜色映射可视化三维表面。
- 从
'viridis'
、'plasma'
或'cividis'
等类别中选择颜色映射。 - 反转颜色映射以获得不同的表示。
12 三维绘图
- 使用
plt.plot()
和Axes3D
创建三维折线图。 - 使用
ax.scatter()
生成三维散点图。 - 使用
ax.plot_surface()
绘制三维表面。 - 自定义三维绘图的视角和投影。
13 误差线和置信区间
- 使用
plt.errorbar()
为折线图添加误差线。 - 使用
plt.fill_between()
显示阴影置信区间。 - 绘制两条曲线之间的阴影区域。
14 三维绘图中的注释
- 使用
ax.text()
注释三维绘图中的点。 - 为特定数据点添加箭头和文本注释。
- 自定义三维绘图中文本的外观。
15 地理绘图
- 使用
cartopy
为地理数据创建地图。 - 使用
plt.contour()
或plt.pcolormesh()
在地图上绘制数据。 - 自定义地图投影和边界。
16 动画
- 使用
FuncAnimation
生成动画。 - 在每一帧中动态更新绘图元素。
- 将动画保存为GIF或视频。
17 样式和主题
- 使用
plt.style.use()
使用预定义样式。 - 使用样式表自定义绘图外观。
- 创建自定义样式表。
18 图例
- 使用
plt.legend()
为绘图添加图例。 - 将图例放置在不同位置。
- 自定义图例的外观和标签。
19 LaTeX渲染
- 使用
plt.rc('text', usetex=True)
在文本和标签中启用LaTeX渲染。 - 使用LaTeX表达式表示数学符号。
20 日期和时间格式化
- 以正确的日期格式绘制时间序列数据。
- 使用
matplotlib.dates
进行与日期相关的函数操作。 - 自定义绘图上的日期刻度和标签。
21 双坐标轴
- 使用
ax.twinx()
或ax.twiny()
创建双坐标轴。 - 在同一绘图上使用不同的y轴绘制多个数据集。
22 极坐标图
- 使用
plt.polar()
生成极坐标图。 - 自定义径向和角度网格。
- 在极坐标中绘制数据。
23 水印
- 使用
plt.text()
和低透明度(alpha)为绘图添加水印。 - 显示低调或透明的水印。
24 导出高质量图形
- 使用
plt.savefig()
并设置DPI(每英寸点数)保存高质量图形。 - 以各种格式(PNG、PDF、SVG等)保存图形。
- 使用矢量图形以实现可缩放的图形。
25 交互式绘图
- 使用
plt.ion()
和plt.ioff()
使绘图具有交互性。 - 探索像Qt或Tkinter这样的交互式后端。
26 Seaborn集成
- 将Seaborn与Matplotlib结合使用以增强美观度。
- 使用
sns.set_style()
设置Seaborn样式。
27 自定义颜色条
- 使用
plt.colorbar()
创建自定义颜色条。 - 调整颜色条的外观和位置。
- 在子图之间链接颜色条。
28 填充曲线之间的区域
- 使用
plt.fill_between()
填充曲线之间的区域。 - 自定义填充颜色、透明度和线型。
29 箭头图
- 使用
plt.quiver()
创建箭头图。 - 使用箭头可视化矢量场。
- 自定义箭头的外观和密度。
30 小提琴图
- 使用
plt.violinplot()
或Seaborn生成小提琴图。 - 自定义小提琴图的外观。
- 将小提琴图与其他绘图类型结合使用。
31 流线图
- 使用
plt.streamplot()
绘制流线。 - 使用流线可视化矢量场。
这些技巧涵盖了Matplotlib的广泛功能,从基础绘图到自定义、三维绘图、动画等高级技术。在实际数据上尝试这些技巧能帮助你熟练使用Matplotlib创建多样且具有视觉吸引力的绘图。
文章来源:微信公众号-Python学研大本营,原始发表时间:2025年03月18日。