Subheadings for categories within matplotlib custom legend

前端 未结 1 1458
广开言路
广开言路 2020-11-30 07:57

I have a a figure that looks like this:

\"enter

I\'d like to make a legend tha

相关标签:
1条回答
  • 2020-11-30 08:51

    Separate headings for D and A lines:

    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, = plot([0],  marker='None',
               linestyle='None', 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, p5, p7, p1, p2, p3, p4],
                  [r'$D_{etc}$', '', r'$A_{etc}$', ''] + categories + categories,
                  loc=4, ncol=2) # Two columns, 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, p4], categories, title='A_etc', loc=4)
    #gca().add_artist(leg2) 
    
    show()
    

    Two options for a grouped legend

    0 讨论(0)
提交回复
热议问题