"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como criar e anotar um gráfico de barras agrupadas usando Matplotlib em Python?

Como criar e anotar um gráfico de barras agrupadas usando Matplotlib em Python?

Publicado em 2024-11-10
Navegar:684

How to Create and Annotate a Grouped Bar Chart Using Matplotlib in Python?

Como plotar e anotar um gráfico de barras agrupado

Plotar um gráfico de barras agrupado com o Matplotlib do Python requer uma consideração cuidadosa da manipulação de dados, espaçamento de barras e rotulagem. Veja como resolver seu problema específico:

Preparação de dados

  • Em vez de dividir cada coluna por 2233 separadamente, use o método div() em todo o df para obter o mesmo efeito em uma única linha: df = df.div(2233).

Pre-matplotlib 3.4.2

  • Ajuste o valor w para 0,8 / 3 para espaçar corretamente as barras.

Post-matplotlib 3.4.2

  • Utilize matplotlib.pyplot.bar_label e pandas.DataFrame.plot para uma abordagem mais simples e elegante .

Annotation

  • Para rotular as barras, use a função annotate() dentro de um loop que itera sobre os patches.
  • Ajuste o posicionamento de as anotações com base no alinhamento e estética desejados.

Código de exemplo

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(...).div(2233)

ax = df.plot(kind='bar', color=colors, figsize=(20, 8), ylabel='Percentage', title="...")

for p in ax.patches:
    ax.annotate(f'{p.get_height():0.2f}', (p.get_x()   p.get_width() / 2., p.get_height()), ha='center', va='center', xytext=(0, 10), textcoords='offset points')

Este código irá gerar um gráfico de barras agrupado com alturas de barras anotadas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3