Réponses:
La tick_params
méthode est très utile pour des trucs comme ça. 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()
plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
axes
a la même tick_params
méthode.
matplotlib
, vous devez remplacer 'on'
par True
et 'off'
par False
.
Pas exactement ce que l'OP demandait, mais un moyen simple de désactiver toutes les lignes, graduations et étiquettes des axes consiste à simplement appeler:
plt.axis('off')
ax.axis('off')
sur une instance d'axes existante.
Alternativement, vous pouvez passer une position de coche vide et étiqueter comme
# for matplotlib.pyplot
# ---------------------
plt.xticks([], [])
# for axis object
# ---------------
# from Anakhand May 5 at 13:08
# for major ticks
ax.set_xticks([])
# for minor ticks
ax.set_xticks([], minor=True)
ax
, vous pouvez utiliser:ax.set_xticks([], [])
ax.set_xticks([])
pour les tiques majeures, ax.set_xticks([], minor=True)
pour les tiques mineures. Les équivalents avec pyplot
sont plt.xticks([])
et plt.xticks([], minor=True)
.
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')
Il existe une solution meilleure et plus simple que celle proposée par John Vinyard. Utilisation 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 cela pourra aider.
axins.xaxis.set_major_locator(plt.NullLocator())
, où axins
est l'objet renvoyé par axins = zoomed_inset_axes()
(fonction importée de mpl_toolkits.axes_grid1.inset_locator
).
Essayez ceci pour supprimer les étiquettes (mais pas les tiques):
import matplotlib.pyplot as plt
plt.setp( ax.get_xticklabels(), visible=False)
setp
est en mode Pylab, ne peut pas être utilisé contre des axes individuels
Cet extrait peut aider à supprimer uniquement les xticks.
from matplotlib import pyplot as plt
plt.xticks([])
Cet extrait peut aider à supprimer les xticks et les yticks à la fois.
from matplotlib import pyplot as plt
plt.xticks([]),plt.yticks([])
# 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')
ax.tick_params()
off
et on
est déconseillée. MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
Ceux d'entre vous qui recherchent une commande courte pour désactiver tous les ticks et étiquettes devraient
plt.tick_params(top=False, bottom=False, left=False, right=False, labelleft=False, labelbottom=False)
qui permet le type bool
pour les paramètres respectifs depuis la version matplotlib> = 2.1.1
Pour les paramètres de coche personnalisés, les documents sont utiles:
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html
ax.set_xticks([], [])
et c'est résolu ...