我有一个看起来像这样的数字:
我想制作一个看起来像这样的传奇:
我怎样才能做到这一点?
更新:
请注意,此图例的框架带有edgecolor:有效的答案将包括此.图例也应嵌入轴中.
我想要的传奇可能无法使用ax.legend()实现.一个很好的答案将展示如何使用补丁和文本手动构建我想要的图例(完全如图所示),或任何有意义的matplotlib方法.
解决方法
D和A线的单独标题:
from matplotlib.pyplot import *
ds = [1,2,3]
dc = [1.1,1.9,3.2]
asim = [1.5,2.2,3.1]
ac = [1.6,2.15,3.1]
categories = [‘simulated’,’calculated’]
p1,= plot(ds,’ko’,label=’D simulated’)
p2,= plot(dc,’k:’,label=’D calculated’)
p3,= plot(asim,’b+’,label=’A simulated’)
p4,= plot(ac,’b-‘,label=’A calculated’)
p5,= plot([0],marker=’None’,linestyle=’None’,label=’dummy-tophead’)
p7,label=’dummy-empty’)
leg3 = legend([p5,p1,p2,p5,p3,p4],[r’$D_{etc}$’] + categories + [r’$A_{etc}$’] + categories,loc=2,ncol=2) # Two columns,vertical group labels
leg4 = legend([p5,p7,[r’$D_{etc}$’,”,r’$A_{etc}$’,”] + categories + categories,loc=4,horizontal group labels
gca().add_artist(leg3)
#If there isn’t a big empty spot on the plot,two legends:
#leg1 = legend([p1,p2],categories,title=’D_etc’,loc=0)
#leg2 = legend([p3,title=’A_etc’,loc=4)
#gca().add_artist(leg2)
show()