在matplotlib中绘制带有相应图例的文本条目(并具有格式设置的可能性)

时间:2019-01-15 15:03:09

标签: python matplotlib legend

我想用适当的图例在matplotlib中绘制文本条目,即文本条目就像是标记,应与图例中的某些说明一起复制。

我确定了三种可能的方法,但没有一种方法可以为我提供我想要的控制权

  • plot与mathtext一起用作标记:对于图例来说很好,但是我如何格式化文本本身(例如,避免加粗,斜体,选择字体系列等)?
  • annotate:可以完全控制文本,但是如何引用图例(marler的出现与情节上的显示完全一样)?;
  • text:与annotate相同。

    import matplotlib.pyplot as plt
    
    myd = dict((k, v) for (k, v) in zip(('FOO', 'BLA', 'OOP'),
                                        ('Foofighters!', 'BlackPanther', 'Oops I did it again')))
    mycolors = ('r', 'b', 'g')
    
    fig, (ax0, ax1, ax2) = plt.subplots(1, 3, figsize=(10,4), sharex=True, sharey=True)
    
    for i, (k,v) in enumerate(myd.items()):
    
        ax0.plot(i, i, marker='$%s$' % k, ms=20, lw=0, label = v,
                 color=mycolors[i])
        ax0.legend(loc=2)
    
        ax1.annotate(k, xy=(i, i), label=v, ha='center', va='center',
                     color=mycolors[i], fontweight='extra bold')
        ax1.legend(loc=2)
    
        ax2.text(i, i, k, label=v, ha='center', va='center',
                 color=mycolors[i], family='fantasy', rotation=15)
        ax2.legend(loc=2)
    
    fig.tight_layout()
    plt.show()
    

enter image description here

0 个答案:

没有答案