python - vertical - xtick rotate matplotlib
Python xticks en subtramas (2)
Si trazo un solo diagrama de imshow
puedo usar
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
para reemplazar mis etiquetas xtick.
Ahora, estoy tramando 12 imshow
de imshow
usando
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
¿Cómo puedo cambiar mis xticks solo por una de estas subtramas? Solo puedo acceder a los ejes de las subtramas con axarr[i, j]
. ¿Cómo puedo acceder a plt
solo para una subtrama particular?
Hay dos maneras:
- Utilice los métodos de ejes del objeto de subtrama (por ejemplo,
ax.set_xticks
yax.set_xticklabels
) o - Utilice
plt.sca
para establecer los ejes actuales para la máquina de estado de plámip (es decir, la interfazplt
).
Como ejemplo (esto también ilustra el uso de setp
para cambiar las propiedades de todas las subtramas):
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()
Parece que en la versión posterior de Matplotlib, las funciones set_yticks
y set_xticks
se eliminan. Lo que hice fue, en lugar de establecer el tamaño de x, y ticks, simplemente 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í ... Avíseme si hay mejores métodos para resolver este problema en las versiones posteriores de Matplotlib. Gracias