怎么使两个图例一上一下
时间: 2024-09-22 08:01:36 浏览: 33
python使用matplotlib绘图时图例显示问题的解决
在Matplotlib中,要让两个图例上下排列,通常需要创建两个子图,并分别设置它们的位置。这里提供一个例子,假设你已经在Python环境中使用matplotlib绘制了两个子图`ax1`和`ax2`:
```python
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
# 创建一个新的坐标轴网格
fig = plt.figure()
gs = host_subplot(111) # 使用host_subplot创建网格
# 绘制第一个图形和其图例
ax1 = gs.twinx() # 双轴共享X轴
plot_data1(ax1)
ax1.legend(['数据A'], loc='upper left') # 图例在左上角
# 绘制第二个图形和其图例
ax2 = ax1.twinx() # 这里是针对ax1的新双轴,所以图例会显示在ax1的上方
plot_data2(ax2)
ax2.legend(['数据B'], loc='lower right') # 图例在右下角
# 控制子图的布局
gs.tight_layout() # 自动调整子图间的间距,防止重叠
plt.show()
```
在这个示例中,`twinx()`函数用于在同一坐标系内创建一个新的垂直坐标轴,然后每个子图的图例位置通过`loc`参数指定。
如果你是在Matlab中工作,那么可以参考类似的方式来创建子图并手动调整它们的位置,可能需要利用`subplot`和`legend`函数结合`position`选项来实现。
阅读全文