Remove legend key in matplotlib

2019-03-01 14:11发布

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')

enter image description here

I don't want the box next to the legend "something". How to remove it?

1条回答
对你真心纯属浪费
2楼-- · 2019-03-01 14:17

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()

enter image description here

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()

enter image description here

查看更多
登录 后发表回答