Vicente
Tengo un gráfico semilogx y me gustaría eliminar los xticks. Lo intenté:
plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])
La cuadrícula desaparece (bien), pero quedan marcas pequeñas (en el lugar de las marcas principales). ¿Cómo eliminarlos?
Juan Vinyard
El plt.tick_params
El método es muy útil para cosas como esta. Este código desactiva los ticks mayores y menores y elimina las etiquetas del eje x.
Tenga en cuenta que también hay ax.tick_params
para matplotlib.axes.Axes
objetos.
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()
No es exactamente lo que estaba pidiendo el OP, pero una forma sencilla de deshabilitar todas las líneas, marcas y etiquetas de los ejes es simplemente llamar:
plt.axis('off')
hachís
Alternativamente, puede pasar una posición de marca vacía y etiquetarla como
# 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)
Aquí hay una solución alternativa que encontré en el lista de correo matplotlib:
import matplotlib.pylab as plt
x = range(1000)
ax = plt.axes()
ax.semilogx(x, x)
ax.xaxis.set_ticks_position('none')
dmcdougall
Hay una solución mejor y más simple que la dada por John Vinyard. Usar NullLocator
:
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.show()
plt.savefig('plot')
Chris Seymour
Prueba esto para eliminar las etiquetas (pero no las marcas):
import matplotlib.pyplot as plt
plt.setp( ax.get_xticklabels(), visible=False)
Este fragmento podría ayudar a eliminar solo los xticks.
from matplotlib import pyplot as plt
plt.xticks([])
Este fragmento podría ayudar a eliminar los xticks y los yticks.
from matplotlib import pyplot as plt
plt.xticks([]),plt.yticks([])