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?

¿Fue útil?

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)

El resultado será así ingrese la descripción de la imagen aquí

Con suerte, ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top