web-dev-qa-db-fra.com

Matplotlib: comment ajuster l'espace entre les marqueurs de légende et les étiquettes?

Je souhaite ajuster l'espace entre les marqueurs de légende et les étiquettes. Parfois, l'espace est trop par défaut. Est-ce que quelqu'un sait comment faire ça?

Merci.

14
rhtica

legend() a un kwarg appelé handletextpad qui fera ce que vous cherchez. Par défaut, ce paramètre est défini sur 0,8. De la docs :

handletextpad: float ou None

Le tampon entre la poignée de légende et le texte. Mesuré en unités de taille de police.

La valeur par défaut est None, qui prendra la valeur de legend.handletextpadrcParam.

Ainsi, lorsque vous appelez legend, ajoutez ce kwarg et testez la valeur. Quelque chose comme:

ax.legend(handletextpad=0.1)

Considérer ce qui suit:

import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(ncols=2)

ax1.plot(range(5), 'ro', label='handletextpad=0.8')
ax2.plot(range(5), 'bo', label='handletextpad=0.1')

ax1.legend()
ax2.legend(handletextpad=0.1)

plt.show()

enter image description here

19
tmdavison