2012-05-11 113 views
1

我无法在带有两个坐标轴集和一个错误栏的图上获得图例。代码如下:matplotlib - 带有多个轴的图例,带有错误栏对象

rect = 0.1, 0.1, 0.8, 0.8 
fig = p.figure() 

ax1 = fig.add_axes(rect) 
errorplot = ax1.errorbar(x, y, yerr = yerr, fmt = "o", label = r"errorbar") 
plot1 = ax1.plot(x1, y1, "^", color = "#00FF7F", label = r"plot") 
ax1.yaxis.tick_left() 
ax1.xaxis.tick_bottom() 
ax2 = fig.add_axes(rect, frameon=False) 
ax2.yaxis.tick_right() 
ax2.yaxis.set_label_position('right') 
ax2.xaxis.tick_top() 
ax2.xaxis.set_label_position('top') 
plot2 = ax2.plot(z, al, color = "#CD8500", linewidth =2, label= r"plot2") 
k = list(errorplot[:1]) 
plots = k + plot1 + plot2 
labels = [l.get_label() for l in k] 
ax1.legend(plots, labels, loc = 2) 
ax1.legend(loc = 2) 
p.savefig("test.pdf") 

如果plot1不是误差线图,则此方法有效。任何建议,以获得一个盒子里的所有情节传奇?

非常感谢。

回答

1

使用代码从this question应该工作:

h1, l1 = ax1.get_legend_handles_labels() 
h2, l2 = ax2.get_legend_handles_labels() 
ax1.legend(h1+h2, l1+l2, loc=2)