web-dev-qa-db-fra.com

Masquer l'étiquette d'axe uniquement, pas l'axe entier, dans Pandas plot

Je peux effacer le texte du xlabel dans un graphique Pandas avec:

plt.xlabel("")

Au lieu de cela, est-il possible de masquer l'étiquette?

Peut être quelque chose comme .xaxis.label.set_visible(False).

19
KcFnMi

À partir des documents Pandas -

La méthode de tracé sur Series et DataFrame n'est qu'un simple wrapper autour de plt.plot ():

Cela signifie que tout ce que vous pouvez faire avec matplolib, vous pouvez le faire avec un tracé Pandas DataFrame.

pyplot a une méthode axis() qui vous permet de définir les propriétés des axes. Appeler plt.axis('off') avant d'appeler plt.show() désactive les deux axes.

df.plot()
plt.axis('off')
plt.show()
plt.close()

Pour contrôler un seul axe, vous devez définir ses propriétés via Axes du tracé. Pour l'axe x - (pyplot.axes (). Get_xaxis () ..... )

df.plot()
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_visible(False)
plt.show()
plt.close()

De même, pour contrôler une étiquette d'axe, récupérez-la et désactivez-la.

df.plot()
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_label_text('foo')
x_label = x_axis.get_label()
##print isinstance(x_label, matplotlib.artist.Artist)
x_label.set_visible(False)
plt.show()
plt.close()

Vous pouvez également accéder à l'axe x comme ceci

ax1 = plt.axes()
x_axis = ax1.xaxis
x_axis.set_label_text('foo')
x_axis.label.set_visible(False)

Ou ca

ax1 = plt.axes()
ax1.xaxis.set_label_text('foo')
ax1.xaxis.label.set_visible(False)

.set_visible() est une méthode Artiste . Les axes et leurs étiquettes sont des artistes, ils ont donc méthodes/attributs de l'artiste ainsi que les leurs . Il existe de nombreuses façons de personnaliser vos tracés. Parfois, vous pouvez trouver la fonctionnalité que vous souhaitez parcourir les Galerie et Exemples

27
wwii