En una figura matplotlib, ¿cómo puedo hacer que el tamaño de fuente para las etiquetas de marca sea ax1.set_xticklabels()
más pequeño?
Además, ¿cómo se puede rotar de horizontal a vertical?
python
matplotlib
Abre el camino
fuente
fuente
Respuestas:
Tenga en cuenta que las versiones más nuevas de MPL tienen un acceso directo para esta tarea. Se muestra un ejemplo en la otra respuesta a esta pregunta: https://stackoverflow.com/a/11386056/42346
El siguiente código tiene fines ilustrativos y no necesariamente puede optimizarse.
fuente
plt.setp
. (Además, eche un vistazo aax.tick_params
) Por ejemplo, simplemente puede hacerloplt.setp(ax.get_xticklabels(), rotation='vertical', fontsize=14)
. Además, los objetos axes tienen unax.is_last_row()
método que puede ser útil en casos como su ejemplo. En lugar deif i != len...
, puedes hacerloif not ax.is_last_row()
. (¿Por qué es un método, no tengo idea ... Matplotlib odia las propiedades, aparentemente!)is_last_row()
, ¡gracias! Lo he usadoplt.setp
en el pasado, y no estaba necesariamente seguro de que representara una forma más canónica de personalizar las etiquetas de marca. Has eliminado esa duda, gracias. En términos más generales: sus respuestas, especialmente en lamatplotlib
etiqueta, con frecuencia me dejan asombrado. Mantener el buen trabajo.plt.setp
es un "matlab-ism", y un bucle explícito es probablemente mucho más pitónico. Ser un converso matlab, mesetp
siento natural, pero para cada uno lo suyo. Cualquiera de los dos es bastante legible, IMOax.tick_params(axis='x', labelsize=8)
get_ticklabels
noget_major_ticks
Hay una manera más simple en realidad. Acabo de encontrar:
Sin
label
embargo, esto solo responde al tamaño de parte de su pregunta.fuente
axis = 'x'
oaxis = 'y'
para modificar solo uno de los ejesPara especificar el tamaño de fuente y la rotación al mismo tiempo, intente esto:
fuente
Alternativamente, solo puedes hacer:
fuente
fuente
ax.xaxis.set_tick_params(labelsize=20)
Otra alternativa
Tengo dos parcelas una al lado de la otra y me gustaría ajustar las etiquetas de marca por separado.
Las soluciones anteriores estaban cerca, sin embargo, no me estaban funcionando. Encontré mi solución en esta página matplotlib .
Esto hizo el truco y fue directo al grano. Para mi caso de uso, era la trama a la derecha la que necesitaba ser ajustada. Para el diagrama de la izquierda, ya que estaba creando nuevas etiquetas de marca, pude ajustar la fuente en el mismo proceso que al configurar las etiquetas.
es decir
así que usé para la trama correcta,
Una sutileza menor ... Lo sé ... pero espero que esto ayude a alguien :)
Puntos de bonificación si alguien sabe cómo ajustar el tamaño de fuente de la etiqueta de orden de magnitud.
fuente
En las versiones actuales de Matplotlib, puedes hacerlo
axis.set_xticklabels(labels, fontsize='small')
.fuente
labels
también. Es mejor si podemos cambiar solo el tamaño de fuente.También puede cambiar los parámetros de visualización de etiquetas como tamaño de fuente con una línea como esta:
fuente
Para una fuente más pequeña, uso
ax1.set_xticklabels(xticklabels, fontsize=7)
¡y funciona!
fuente
Lo siguiente funcionó para mí:
La ventaja de lo anterior es que no es necesario para proporcionar el
array
delabels
y funciona con cualquier dato en elaxes
.fuente