usuario2926577
Si trazo un solo imshow
trama que puedo usar
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 mis xticks solo por una de estas subparcelas? Solo puedo acceder a los ejes de las subparcelas con axarr[i, j]
. como puedo acceder plt
solo por una subtrama en particular?
Hay dos maneras:
- Use los métodos de ejes del objeto de la subparcela (por ejemplo,
ax.set_xticks
yax.set_xticklabels
) o - Usar
plt.sca
para establecer los ejes actuales para la máquina de estado de pyplot (es decir, elplt
interfaz).
Como ejemplo (esto también ilustra el uso de setp
para cambiar las propiedades de todas las subparcelas):
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()
-
Qué versión estás usando? Me estoy poniendo
AttributeError: Unknown property xtickslabels
porplt.setp(ax, xtickslabels=xticks)
– Federico Norte
4 de abril de 2018 a las 14:56
Archie
Ver el (bastante) reciente responder en el repositorio matplotlib, en el que se sugiere la siguiente solución:
-
Si desea configurar las xticklabels:
ax.set_xticks([1,4,5]) ax.set_xticklabels([1,4,5], fontsize=12)
-
Si solo desea aumentar el tamaño de fuente de las xticklabels, utilizando los valores y ubicaciones predeterminados (que es algo que personalmente necesito a menudo y encuentro muy útil):
ax.tick_params(axis="x", labelsize=12)
-
Para hacerlo todo a la vez:
plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold", horizontalalignment="left")`