Verifique el eje x de la figura a continuación. ¿Cómo puedo mover las etiquetas un poco hacia la izquierda para que se alineen con sus respectivas marcas?
Estoy girando las etiquetas usando:
ax.set_xticks(xlabels_positions)
ax.set_xticklabels(xlabels, rotation=45)
Pero, como puede ver, la rotación se centra en el medio de las etiquetas de texto. Lo que hace que parezca que están desplazados hacia la derecha.
Intenté usar esto en su lugar:
ax.set_xticklabels(xlabels, rotation=45, rotation_mode="anchor")
... pero no hace lo que deseaba. Y "anchor"parece ser el único valor permitido para el rotation_modeparámetro.

matplotlib
Filipe Correia
fuente
fuente


xlabels = ax.get_xticklabels()si solo quiere usar las etiquetas existentes.Rotar las etiquetas es ciertamente posible. Sin embargo, tenga en cuenta que hacerlo reduce la legibilidad del texto. Una alternativa es alternar las posiciones de las etiquetas usando un código como este:
Para obtener más antecedentes y alternativas, vea esta publicación en mi blog
fuente
Una alternativa fácil y sin bucles es usar la
horizontalalignmentpropiedad Text como argumento de palabra clave paraxticks[1]. A continuación, en la línea comentada, he forzado laxticksalineación para que sea "correcta".(
yticksya alinea el borde derecho con la marca de forma predeterminada, pero paraxticksel valor predeterminado parece ser "centro").[1] Lo encontrará descrito en la documentación de xticks si busca la frase "Propiedades de texto".
fuente
Si no desea modificar las etiquetas xtick, simplemente puede usar:
plt.xticks(rotation=45)fuente
plt.xticks(rotation=45,ha='right')