Skip to main content
 首页 » 编程设计

python之在 matplotlib 子图中只绘制图例

2025年05月04日11三少

我有一堆子图,其中一个我想包含一个图例(其他每个子图中都有相同数量的句柄和标签,所以我只想要一个主图例)。

|plot|gap1|plot| 
|plot|plot|plot| 
|plot|gap2|plot| 

现在gap1在哪里,我想把我的master legend。我在第一个子图中绘制了相同的内容。

line1 = ax2.plot(x1,y2,'--',color='b',linewidth=2) 
line2 = ax2.plot(x1,y2,'-',color='r') 
ax2.legend((line1,line2),('line1','line2'),numpoints=1,loc='center') 
l = line1[0] 
l.remove() 
l = line2[0] 
l.remove() 
ax2.set_axis_off() 

但这似乎行不通。

现在我只想将图例放在 ax2 子图的中心(在 gap1 中)并删除一切(轴、线、刻度等)除了图例位于中心。 谢谢。

请您参考如下方法:

fig, axes_lst = plt.subplots(2, 1) 
 
ln_1, ln_2 = axes_lst[0].plot(range(5), range(5), range(5), np.arange(5) ** 2) 
axes_lst[1].legend((ln_1, ln_2), ('lin', 'quad'), loc='center') 
plt.draw() 

调用 legend 时使用的句柄不必位于调用 legend 的 axes 上。