【Python】Matplotlib图例进阶:plt.legend()的深度定制与实战技巧
1. 图例基础:从自动生成到精确定位
刚接触Matplotlib绘图时,我最常遇到的困惑就是:明明画了三条曲线,怎么图例只显示两条?或者图例把关键数据挡住了怎么办?这些问题的答案都藏在plt.legend()这个看似简单的函数里。
先看最基本的用法。当我们用plot()画线时,只要给每条线加上label参数,最后调用plt.legend()就能自动生成图例:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x), label='正弦曲线') plt.plot(x, np.cos(x), label='余弦曲线') plt.legend() plt.show() 这个基础用法90%的情况下都能工作,但遇到复杂图表时就力不从心了。比如当我们需要:
- 把图例放在图表外侧
- 一个图表显示多个图例
- 调整图例的边框样式和背景透明度
- 动态隐藏/显示特定图例项
这时候就需要深入了解legend()的参数了。最常用的loc参数控制图例位置,支持字符串和数字两种指定方式:
plt.legend(loc='upper right') # 字符串写法 plt.legend(loc=1) # 数字写法,1对应右上角 位置参数完整对应表:
| 字符串值 | 数字值 | 位置 |
|---|---|---|
| 'best' | 0 | 自动选择最佳 |
| 'upper right' | 1 | 右上角 |
| 'upper left' | 2 | 左上角 |
| 'lower left' | 3 | 左下角 |
| 'lower right' | 4 | 右下角 |