Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove legend key in matplotlib

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?

like image 484
Peaceful Avatar asked Jul 14 '26 15:07

Peaceful


1 Answers

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

like image 171
ImportanceOfBeingErnest Avatar answered Jul 20 '26 23:07

ImportanceOfBeingErnest



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!