«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как создать и аннотировать сгруппированную гистограмму с помощью Matplotlib в Python?

Как создать и аннотировать сгруппированную гистограмму с помощью Matplotlib в Python?

Опубликовано 10 ноября 2024 г.
Просматривать:390

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

Как построить и аннотировать сгруппированную гистограмму

Построение сгруппированной гистограммы с помощью Python Matplotlib требует тщательного рассмотрения манипуляций с данными, интервала между столбцами и маркировки. Вот как можно решить вашу конкретную проблему:

Подготовка данных

  • Вместо того, чтобы делить каждый столбец на 2233 отдельно, используйте метод div() для всего df, чтобы добиться того же эффекта в одна строка: df = df.div(2233).

Pre-matplotlib 3.4.2

  • Измените значение w на 0,8 / 3, чтобы правильно расположить столбцы.

Post-matplotlib 3.4.2

  • Используйте matplotlib.pyplot.bar_label и pandas.DataFrame.plot для более простого и элегантного подхода. .

Аннотация

  • Чтобы пометить столбцы, используйте функцию annotate() в цикле, который перебирает патчи.
  • Отрегулируйте положение аннотации, основанные на желаемом выравнивании и эстетике.

Пример кода

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')

Этот код создаст сгруппированную гистограмму с аннотированной высотой столбцов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3