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 | 右下角 |


