Условие:
нарисуй диаграмму по следующим данным: Выручка от реализации (без финансовых услуг)
Расшифровка выручки от реализации (без финансовых услуг) в разбивке по продуктам приведена в таблице ниже:
За 12 месяцев,
закончившихся Изм.,
(млн руб.)
31 декабря
2024
31 декабря
2023
%
Нефть 672 631 577 439 16,5
Нефтепродукты 1 185 212 892 705 32,8
Шины 52 061 22 315 >100
Прочая реализация 120 467 96 623 24,7
Итого выручка от реализации (без финансовых услуг) 2 030 371 1 589 082 27,8
Решение:
Ниже приведён пошаговый пример, как можно построить диаграмму для данных. В данном случае мы построим группированную столбчатую диаграмму, где по оси X отложены группы товаров, а для каждой группы будут два столбца – один для значений за 31 декабря 2024 и другой – за 31 декабря 2023. Также можно добавить аннотации с процентным изменением. Шаг 1. Подготовка данных У нас имеются данные по четырём продуктам: • Нефть: 31 декабря 2024: 672 631 млн руб 31 декабря 2023: 577 439 ...
import matplotlib.pyplot as plt import numpy as np продукты = [Нефть, Нефтепродукты, Шины, Прочая реализация] значения024 = [672631, 1185212, 52061, 120467] значения023 = [577439, 892705, 22315, 96623] проценты = [+16,5%, +32,8%, 100%, +24,7%] x = np.arange(len(продукты)) # позиции по оси X для каждой группы ширина = 0.35 # ширина столбцов fig, ax = plt.subplots(figsize=(10, 6)) bars1 = ax.bar(x - ширина/2, значения024, ширина, label=31 декабря 2024, color=skyblue) bars2 = ax.bar(x + ширина/2, значения023, ширина, label=31 декабря 2023, color=salmon) for idx, bar in enumerate(bars1): высота = bar.geteight() ax.text(bar.getwidth()/2, высота + max(значения024)*0.01, проценты[idx], ha=center, va=bottom, fontsize=10, fontweight=bold) ax.setlabel(Выручка (млн руб)) ax.setitle(Выручка от реализации (без финансовых услуг) по продуктам) ax.setticks(x) ax.setticklabels(продукты) ax.legend() def autolabel(bars): for bar in bars: высота = bar.geteight() ax.annotate(f{высота:,}, xy=(bar.getwidth() / 2, высота), xytext=(0, 3), # отступ по оси Y textcoords=offset points, ha=center, va=bottom, fontsize=8) autolabel(bars1) autolabel(bars2) plt.tightayout() plt.show() ------------------------------------------------------- Пояснения к коду: 1. Импортируем matplotlib и numpy. 2. Задаём данные для четырёх категорий (продуктов). 3. Определяем значения выручки для каждого года. 4. Создаем группированную столбчатую диаграмму, сдвигая столбцы для каждого года. 5. Добавляем аннотации с процентными изменениями над столбцами 2024 года (можно изменить, если требуется). 6. Добавляем подписи к осям, заголовок диаграммы и легенду. 7. Функция autolabel добавляет текстовые подписи с точными значениями над каждым столбцом. 8. Вызываем plt.show() для отображения диаграммы. Шаг 4. Интерпретация диаграммы На полученной диаграмме видно, как изменялась выручка от реализации по продуктам между двумя отчетными датами. Например, для «Нефтепродуктов» видно существенное увеличение (на +32,8%), а для «Шин» – увеличение более чем в два раза. Таким образом, при помощи этого кода можно визуализировать представленные данные в виде удобной и наглядной диаграммы. Это один из возможных вариантов построения диаграммы по заданным данным.