Pergunta

Eu estou usando matplotlib para gerar um gráfico de barras (vertical). O problema é minhas etiquetas são bastante longa. Existe alguma maneira de exibi-las verticalmente, seja no bar ou acima ou abaixo dela?

Foi útil?

Solução

Você algo média como este:

>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')

?

Em geral, para mostrar qualquer texto no matplotlib com uma orientação vertical, você pode adicionar a palavra-chave rotation='vertical'.

Para mais opções, você pode olhar para a ajuda (matplotlib.pyplot.text)

As parcelas yticks funcionar as marcas no eixo y; Não estou certo se você originalmente significava isso ou a função ylabel, mas o procedimento é alwasy o mesmo, você tem que adicionar a rotação = 'vertical'

Talvez você também pode encontrar útil as opções 'VerticalAlignment' e 'HorizontalAlignment', que permite que você defina como alinhar o texto com respeito aos carrapatos ou os outros elementos.

Outras dicas

Em Jupyter Notebook que você pode usar algo como isto

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

plt.xticks(rotation='vertical')
plt.plot(np.random.randn(100).cumsum())

ou você pode usar:

plt.xticks(rotation=90)

Eu sugeriria olhar a galeria matplotlib . Pelo menos dois dos exemplos parecem ser relevantes:

  • text_rotation.py para a compreensão de como funciona o layout de texto
  • barchart_demo2.py , um exemplo de um gráfico de barras com um pouco mais complicado o layout do que o exemplo mais básico.

Por favor confira este link: 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)

O resultado será como este enter descrição da imagem aqui

Felizmente, isso ajuda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top