Remove legend key in matplotlib

后端 未结 1 1602
被撕碎了的回忆
被撕碎了的回忆 2020-12-20 02:46

I want to show a legend text but without a key (the rectangular box or line that appears by default).

plt.hist(x, label = \'something\')

<

相关标签:
1条回答
  • 2020-12-20 03:21

    First of all, you may decide not to create a legend at all and instead put some label in to corner of the plot.

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.random.normal(size=160)
    plt.hist(x)
    
    plt.text(0.95,0.95, 'something', ha="right", va="top", transform=plt.gca().transAxes)
    plt.show()
    

    If you already created the legend and want to remove it, you can do so by

    plt.gca().get_legend().remove()
    

    and then add the text instead.

    If this is not an option, you may set the legend handle invisible like so:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.random.normal(size=160)
    plt.hist(x, label = 'something')
    
    plt.legend()
    
    leg = plt.gca().get_legend()
    leg.legendHandles[0].set_visible(False)
    
    plt.show()
    

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