legend=plt.legend置于子图顶部
时间: 2025-01-08 08:39:53 浏览: 7
### 在 Matplotlib 子图中设置图例位置
为了在 Matplotlib 的子图中将图例放置于顶部,可以利用 `plt.legend()` 函数中的参数来调整图例的位置。具体来说,通过指定 `bbox_to_anchor` 和 `loc` 参数能够精确控制图例相对于绘图区域的位置。
下面是一个具体的例子展示如何实现这一点:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一些示例数据
x = np.linspace(0, 5, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))
# 绘制第一个子图并设置其图例外部上方居中显示
ax1.plot(x, y1, label='sin')
ax1.plot(x, y2, label='cos')
ax1.set_title('Subplot with Legend on Top Outside Center')
ax1.legend(bbox_to_anchor=(0.5, 1.1), loc='upper center', ncol=2)
# 绘制第二个子图并将图例放在内部顶部右侧角落内
ax2.plot(x, y1, label='sin')
ax2.plot(x, y2, label='cos')
ax2.set_title('Subplot with Legend Inside Upper Right Corner')
ax2.legend(loc='upper right')
plt.tight_layout()
plt.show()
```
上述代码创建了一个包含两个子图的图形窗口,在每个子图上绘制了正弦波形和余弦波形,并分别设置了不同的图例位置。对于第一个子图 (`ax1`),图例被放置在外围顶部中央;而对于第二个子图 (`ax2`),则是在图表内的右上角展示了图例[^1]。
阅读全文