在Matplotlib中,`legend()`函数用于在图形上添加图例。以下是一些基本用法和高级用法:
基本用法
自动检测:如果你已经为图形中的线条或对象设置了`label`属性,那么调用`legend()`函数时会自动显示图例。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend() 自动显示图例
plt.show()
```
指定标签:你也可以在调用`legend()`函数时手动指定标签。
```python
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(['sin(x)', 'cos(x)']) 手动指定标签
plt.show()
```
高级用法
指定位置:可以使用`loc`参数来指定图例的位置。
```python
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(loc='upper left') 指定图例位置为左上角
plt.show()
```
指定显示的曲线:可以通过循环或其他方法指定显示哪些曲线的图例。
```python
lines = plt.plot([1, 2, 3], [1, 4, 9], label='line 1')
lines += plt.plot([1, 2, 3], [1, 2, 3], label='line 2')
plt.legend(['line 1', 'line 2']) 指定显示的曲线
plt.show()
```
关闭某些曲线的图例:可以通过设置`IconDisplayStyle`为`off`来关闭某些曲线的图例。
```python
for i in [0, 2, 4]:
set(get(lines[i].get_Annotation(), 'LegendInformation'), 'IconDisplayStyle', 'off')
plt.legend() 只显示未关闭的图例
plt.show()
```
这些是`legend()`函数的基本和高级用法。根据你的具体需求,可以选择合适的方法来添加图例。