Si trazo un único gráfico imshow
puedo utilizar
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
para reemplazar mis etiquetas xtick.
Ahora, estoy trazando 12 imshow
parcelas utilizando
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
¿Cómo puedo cambiar mi xticks sólo para uno de estos subplots? Sólo puedo acceder a los ejes de los subplots con axarr[i, j]
. ¿Cómo puedo acceder a plt
sólo para un subplot en particular?
Hay dos maneras:
ax.set_xticks
y ax.set_xticklabels
) o bienplt.sca
para establecer los ejes actuales de la máquina de estados de pyplot (es decir, la interfaz plt
).Como ejemplo (esto también ilustra el uso de setp
para cambiar las propiedades de todos los subplots):
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=3, ncols=4)
# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
yticks=[1, 2, 3])
# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')
fig.tight_layout()
plt.show()
Véase la (bastante) reciente respuesta en el repositorio matplotlib, en la que se sugiere la siguiente solución:
Si desea establecer el xticklabels:
ax.set_xticks([1,4,5])
ax.set_xticklabels([1,4,5], fontsize=12)
Si sólo quieres aumentar el tamaño de fuente de las xticklabels, usando los valores y ubicaciones por defecto (que es algo que personalmente necesito a menudo y encuentro muy práctico):
ax.tick_params(axis="x", labelsize=12)
Para hacerlo todo de una vez
plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold",
horizontalalignment="left")`.
Parece que en la última versión de Matplotlib, las funciones set_yticks
y set_xticks
han sido eliminadas. Lo que hice fue, en lugar de establecer el tamaño de x,y ticks, sólo cambié el tamaño de la figura.
plt.figure(1, dpi=200, figsize=(20,20))
Sé que es un poco anti-intuitivo, pero eso es lo que funcionó para mí ... Hazme saber si hay mejores métodos para resolver este problema en las versiones posteriores de Matplotlib. Gracias