Cómo eliminar xticks de un gráfico

2 minutos de lectura

Avatar de usuario de Vincent
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?

Avatar de usuario de John Vinyard
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()

ingrese la descripción de la imagen aquí

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')

avatar de usuario de hashmuke
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') 

grafico

avatar de usuario de dmcdougall
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')

Avatar de usuario de Chris Seymour
Chris Seymour

Prueba esto para eliminar las etiquetas (pero no las marcas):

import matplotlib.pyplot as plt

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

ejemplo

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([])

¿Ha sido útil esta solución?