Aquí hay muchas respuestas "correctas", pero agregaré una más ya que creo que algunos detalles quedan fuera de varios. El OP solicitó una rotación de 90 grados, pero cambiaré a 45 grados porque cuando usa un ángulo que no es cero o 90, también debe cambiar la alineación horizontal; de lo contrario, sus etiquetas estarán descentradas y serán un poco engañosas (y supongo que muchas personas que vienen aquí quieren rotar los ejes a algo que no sea 90).
Código más fácil / menos
Opción 1
plt.xticks(rotation=45, ha='right')
Como se mencionó anteriormente, eso puede no ser deseable si prefiere adoptar el enfoque orientado a objetos.
opcion 2
Otra forma rápida (está destinado a objetos de fecha pero parece funcionar en cualquier etiqueta; sin embargo, dudo que esto se recomiende):
fig.autofmt_xdate(rotation=45)
fig
normalmente obtendrías de:
fig = plt.figure()
fig, ax = plt.subplots()
fig = ax.figure
Orientado a objetos / Tratar directamente con ax
Opcion 3a
Si tiene la lista de etiquetas:
labels = ['One', 'Two', 'Three']
ax.set_xticklabels(labels, rotation=45, ha='right')
Opción 3b
Si desea obtener la lista de etiquetas del diagrama actual:
# Unfortunately you need to draw your figure first to assign the labels,
# otherwise get_xticklabels() will return empty strings.
plt.draw()
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='right')
Opcion 4
Similar a lo anterior, pero en lugar de hacerlo manualmente.
for label in ax.get_xticklabels():
label.set_rotation(45)
label.set_ha('right')
Opción 5
Todavía usamos pyplot
(como plt
) aquí, pero está orientado a objetos porque estamos cambiando la propiedad de un ax
objeto específico .
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
Opcion 6
Esta opción es simple, pero AFAIK no puede configurar la alineación horizontal de la etiqueta de esta manera, por lo que otra opción podría ser mejor si su ángulo no es 90.
ax.tick_params(axis='x', labelrotation=45)
Editar:
Hay una discusión sobre este "error" exacto y una solución está potencialmente programada para v3.2.0
:
https://github.com/matplotlib/matplotlib/issues/13774
ha
(alineación horizontal)