Diagrama de barras con etiquetas verticales en python / matplotlib
-
10-07-2019 - |
Pregunta
Estoy usando matplotlib para generar un gráfico de barras (vertical). El problema es que mis etiquetas son bastante largas. ¿Hay alguna forma de mostrarlos verticalmente, ya sea en la barra o encima o debajo de ella?
Solución
¿Te refieres a algo como esto:
>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')
?
En general, para mostrar cualquier texto en matplotlib con una orientación vertical, puede agregar la palabra clave rotación = 'vertical'
.
Para más opciones, puede consultar la ayuda (matplotlib.pyplot.text)
La función yticks traza los ticks en el eje y; No estoy seguro de si originalmente se refería a esto o la función ylabel, pero el procedimiento es siempre el mismo, debe agregar rotación = 'vertical'
Quizás también pueda encontrar útiles las opciones 'alineación vertical' y 'alineación horizontal', que le permiten definir cómo alinear el texto con respecto a los ticks u otros elementos.
Otros consejos
En Jupyter Notebook puede usar algo como esto
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
plt.xticks(rotation='vertical')
plt.plot(np.random.randn(100).cumsum())
o puede usar:
plt.xticks(rotation=90)
Sugeriría mirar la galería matplotlib . Al menos dos de los ejemplos parecen ser relevantes:
- text_rotation.py para comprender cómo funciona el diseño del texto
- barchart_demo2.py , un ejemplo de un gráfico de barras con algo más complicado diseño que el ejemplo más básico.
Por favor revisa este enlace: https://python-graph-gallery.com/7-custom-barplot -layout /
import matplotlib.pyplot as plt
heights = [10, 20, 15]
bars = ['A_long', 'B_long', 'C_long']
y_pos = range(len(bars))
plt.bar(y_pos, heights)
# Rotation of the bars names
plt.xticks(y_pos, bars, rotation=90)
Con suerte, ayuda.