Python 创建多个子图,子图的图例放在外面
时间: 2024-11-20 08:56:15 浏览: 19
在Python中,特别是使用matplotlib库创建图形时,如果你想要在一个主图中添加多个子图,并将它们的图例放置在主图外统一的位置,可以使用`subplots`函数以及`legend`的`loc`参数。以下是基本步骤:
1. 首先,导入需要的库:
```python
import matplotlib.pyplot as plt
```
2. 使用`subplots`创建包含多个子图的网格,例如两行两列:
```python
fig, axs = plt.subplots(2, 2)
```
这里`axs`是一个二维数组,包含了四个Axes对象,每个对象代表一个子图。
3. 给每个子图绘制数据,记得给每个轴设置标签,因为这是图例引用的关键信息:
```python
for ax in axs.flat:
ax.plot(range(10), label='Data ' + str(ax.get_position().row * 2)) # 示例数据
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.legend(title="Legend") # 添加图例,title用于指定图例标题
```
4. 将所有图例集中到主图外部,可以在`fig`上设置图例:
```python
fig.legend(*axs[0].get_legend_handles_labels(), loc='upper center', bbox_to_anchor=(0.5, -0.1), ncol=2) # 设置图例位置
```
在这个例子中,`bbox_to_anchor`调整了图例相对于屏幕的坐标,`ncol`指定了图例显示的列数。
最后展示整个图像:
```python
plt.show()
```
阅读全文