instalar - plot() python
¿La forma más limpia de ocultar cada enésima etiqueta en la barra de colores de matplotlib? (3)
Las etiquetas en mi barra de color horizontal están demasiado juntas y no quiero reducir aún más el tamaño del texto:
cbar = plt.colorbar(shrink=0.8, orientation=''horizontal'', extend=''both'', pad=0.02)
cbar.ax.tick_params(labelsize=8)
Me gustaría conservar todas las garrapatas, pero eliminar todas las demás etiquetas.
La mayoría de los ejemplos que he encontrado pasan una lista de cadenas especificada por el usuario a cbar.set_ticklabels (). Estoy buscando una solución general.
Jugué con variaciones de
cbar.set_ticklabels(cbar.get_ticklabels()[::2])
y
cbar.ax.xaxis.set_major_locator(matplotlib.ticker.MaxNLocator(nbins=4))
Pero no he encontrado la combinación mágica.
Sé que debe haber una forma limpia de hacerlo utilizando un objeto localizador.
Acabo de encontrar este hilo, bonitas respuestas. Estaba buscando una manera de ocultar cada tick entre los nth ticks. Y encontré la función de enumerar. Entonces, si alguien más está buscando algo similar, puedes hacerlo así.
for index, label in enumerate(ax.xaxis.get_ticklabels()):
if index % n != 0:
label.set_visible(False)
Para hacer un bucle en los ticklabels, y llamar a set_visible()
:
for label in cbar.ax.xaxis.get_ticklabels()[::2]:
label.set_visible(False)
Una sola línea para aquellos que están en eso!
n = 7 # Keeps every 7th label
[l.set_visible(False) for (i,l) in enumerate(ax.xaxis.get_ticklabels()) if i % n != 0]