web-dev-qa-db-fra.com

Supprimer les xticks dans un complot matplotlib?

J'ai un complot semilogx et je voudrais enlever les xticks. J'ai essayé:

plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])

La grille disparaît (ok), mais il reste de petites tiques (à la place des tiques principales). Comment les enlever?

233
Vincent

La méthode tick_params est très utile pour des choses comme celle-ci. Ce code désactive les graduations majeures et mineures et supprime les étiquettes de l'axe des x.

_from matplotlib import pyplot as plt
plt.plot(range(10))
plt.tick_params(
    axis='x',          # changes apply to the x-axis
    which='both',      # both major and minor ticks are affected
    bottom=False,      # ticks along the bottom Edge are off
    top=False,         # ticks along the top Edge are off
    labelbottom=False) # labels along the bottom Edge are off
plt.show()
plt.savefig('plot')
plt.clf()
_

enter image description here

388
John Vinyard

Ce n'est pas exactement ce que demandait le PO, mais un moyen simple de désactiver toutes les lignes d'axe, les graduations et les libellés consiste à appeler simplement:

plt.axis('off')
107
Martin Spacek

Voici une solution alternative que j'ai trouvée sur la liste de diffusion matplotlib :

import matplotlib.pylab as plt

x = range(1000)
ax = plt.axes()
ax.semilogx(x, x)
ax.xaxis.set_ticks_position('none') 

graph

62
Tom Phillips

Alternativement, vous pouvez passer une position de tick vide et étiqueter comme

plt.xticks([], [])
58
hashmuke

Il existe une solution meilleure et plus simple que celle proposée par John Vinyard. Utilisez NullLocator:

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.show()
plt.savefig('plot')

J'espère que ça t'as aidé.

39
dmcdougall

Essayez ceci pour enlever les étiquettes (mais pas les tiques):

import matplotlib.pyplot as plt

plt.setp( ax.get_xticklabels(), visible=False)

exemple

24
auraham

Cet extrait peut aider à supprimer les xticks uniquement.

from matplotlib import pyplot as plt    
plt.xticks([])

Cet extrait peut aider à supprimer les xticks et les yticks.

from matplotlib import pyplot as plt    
plt.xticks([]),plt.yticks([])
9
Amitrajit Bose
# remove all the ticks (both axes), and tick labels on the Y axis
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
2
Nishant Wattamwar