[Python] Masquage du texte de l'axe dans les graphiques matplotlib


Answers

Si vous souhaitez masquer uniquement le texte de l'axe en conservant les lignes de la grille:

frame1 = plt.gca()
frame1.axes.xaxis.set_ticklabels([])
frame1.axes.yaxis.set_ticklabels([])

Faire set_visible(False) ou set_ticks([]) également les lignes de la grille.

Question

J'essaie de tracer une figure sans marque ou chiffre sur l'un ou l'autre des axes (j'utilise des axes dans le sens traditionnel, pas la nomenclature matplotlib!). Un problème que j'ai rencontré est où matplotlib ajuste les ticklabels x (y) en soustrayant une valeur N, puis ajoute N à la fin de l'axe.

Cela peut être vague, mais l'exemple simplifié suivant met en évidence le problème, '6.18' étant la valeur incriminée de N:

import matplotlib.pyplot as plt
import random
prefix = 6.18

rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')

frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
    xlabel_i.set_visible(False)
    xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
    xlabel_i.set_fontsize(0.0)
    xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
    tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
    tick.set_visible(False)

plt.show()

Les trois choses que j'aimerais savoir sont:

  1. Comment désactiver ce comportement en premier lieu (bien que dans la plupart des cas, il est utile, ce n'est pas toujours!) J'ai parcouru matplotlib.axis.XAxis et ne trouve rien de approprié

  2. Comment puis-je faire disparaître N (ie X.set_visible(False) )

  3. Y a-t-il une meilleure façon de faire ce qui précède de toute façon? Mon intrigue finale serait des sous-placettes 4x4 dans une figure, si cela est pertinent.




Plutôt d'un ancien thread mais, cela semble être une méthode plus rapide en utilisant la dernière version de matplotlib:

définir le formateur majeur pour l'axe des x

ax.xaxis.set_major_formatter(plt.NullFormatter())



Links