Найти в Дзене
Анастасия Софт

📊 Автоматическое создание графиков и диаграмм в Excel с Python

Или: как сделать отчёт красивым без мишуры В мире данных и аналитики часто сталкиваешься с ситуацией, когда нужно автоматически создать графики и диаграммы для отчётов в Excel. И это не только удобно, но и важно — визуализация помогает быстро донести суть данных, особенно если речь идет о числе, процентах и трендах. Задача на сегодня: создадим графики в Excel автоматически с помощью Python. Мы будем использовать две библиотеки: Установим библиотеки: pip install pandas openpyxl Представьте себе следующую ситуацию: Вы работаете аналитиком в компании, которая продаёт товар. У вас есть таблица с данными о продажах по месяцам, регионам и типам товаров. Ваша задача — создать график продаж по месяцам для каждого типа товара и отправить его в Excel в виде отчёта. import pandas as pd
# Создаём исходные данные
data = {
'Месяц': ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь'],
'Товар A': [150, 200, 250, 300, 350, 400],
'Товар B': [180, 220, 270, 320, 380, 450],
'Товар C':
Оглавление

Или: как сделать отчёт красивым без мишуры

Автоматическое создание графиков и диаграмм в Excel с Python
Автоматическое создание графиков и диаграмм в Excel с Python

Введение

В мире данных и аналитики часто сталкиваешься с ситуацией, когда нужно автоматически создать графики и диаграммы для отчётов в Excel. И это не только удобно, но и важно — визуализация помогает быстро донести суть данных, особенно если речь идет о числе, процентах и трендах.

Задача на сегодня: создадим графики в Excel автоматически с помощью Python. Мы будем использовать две библиотеки:

  • pandas — для работы с данными в табличном виде.
  • openpyxl — для создания и манипуляции самими графиками в Excel.

Установим библиотеки:

pip install pandas openpyxl

🧪 Пример задачи

Представьте себе следующую ситуацию:

Вы работаете аналитиком в компании, которая продаёт товар. У вас есть таблица с данными о продажах по месяцам, регионам и типам товаров. Ваша задача — создать график продаж по месяцам для каждого типа товара и отправить его в Excel в виде отчёта.

Данные для примера:

import pandas as pd

# Создаём исходные данные
data = {
'Месяц': ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь'],
'Товар A': [150, 200, 250, 300, 350, 400],
'Товар B': [180, 220, 270, 320, 380, 450],
'Товар C': [130, 160, 200, 240, 280, 330]
}

# Преобразуем данные в DataFrame
df = pd.DataFrame(data)

# Покажем данные
print(df)

Это простая таблица с продажами товаров по месяцам. Нам нужно создать для неё график.

🔧 Шаг 1: Основы работы с openpyxl — создание Excel-файла

Для начала давайте просто сохраним эти данные в Excel, чтобы потом добавить график. Это можно сделать с помощью pandas и openpyxl.

# Сохраняем данные в Excel
with pd.ExcelWriter('sales_report.xlsx', engine='openpyxl') as writer:
df.to_excel(writer, index=False, sheet_name='Продажи')

📝 Файл sales_report.xlsx будет содержать таблицу с данными.

📉 Шаг 2: Создание графика

Теперь перейдём к самому интересному: добавим график в Excel! Для этого будем использовать библиотеку openpyxl, которая позволяет не только работать с данными, но и добавлять визуализацию (графики и диаграммы).

2.1: Подключаем openpyxl и загружаем файл

from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference

# Загружаем файл
wb = load_workbook('sales_report.xlsx')
ws = wb['Продажи'] # Открываем лист с данными

📚 Мы используем load_workbook, чтобы загрузить файл и получить доступ к листу с данными.

2.2: Создаём график

Теперь создадим линейный график, который будет отображать динамику продаж каждого товара по месяцам.

# Создаём объект линейного графика
chart = LineChart()

# Определяем диапазон данных для графика
data = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=7)
chart.add_data(data, titles_from_data=True)

# Определяем категории (оси X) — это месяцы
categories = Reference(ws, min_col=1, min_row=2, max_row=7)
chart.set_categories(categories)

# Добавляем график на лист
ws.add_chart(chart, "F2") # Позиция, куда вставляем график (начиная с ячейки F2)

📈 Вот и всё, что нужно для добавления графика! Мы указали диапазоны данных и категорий, а затем добавили сам график в Excel.

💅 Шаг 3: Украсим график и файл

Теперь, чтобы график выглядел немного более презентабельно, можно сделать несколько мелких изменений:

  1. Установим название для графика.
  2. Сделаем оси более чёткими.
  3. Добавим стиль для заголовков.

# Название графика
chart.title = "Продажи по месяцам"

# Стиль осей
chart.x_axis.title = 'Месяц'
chart.y_axis.title = 'Продажи (₽)'

# Задаём шрифт заголовков
from openpyxl.styles import Font
chart.title.font = Font(size=14, bold=True)
chart.x_axis.title.font = Font(size=12)
chart.y_axis.title.font = Font(size=12)

🎨 Теперь график не только работает, но и выглядит красиво!

📝 Шаг 4: Сохраняем файл

После того как график добавлен и всё отформатировано, сохраним файл.

# Сохраняем файл с графиком
wb.save('sales_report_with_chart.xlsx')

🥳 Всё готово! В файле sales_report_with_chart.xlsx теперь будет и таблица, и график, который показывает динамику продаж по месяцам для каждого товара.

🏆 Проверка: что получилось?

  1. У нас есть Excel-файл с таблицей.
  2. Добавлен график, отображающий продажи по месяцам для трёх товаров.
  3. Файл можно открыть в Excel и сразу видеть данные и графики.

🛠 Бонус: Как сделать другие виды графиков?

Мы только что создали линейный график, но с помощью openpyxl можно создать и другие типы диаграмм, например:

  • Столбчатый график (BarChart)
  • Круговая диаграмма (PieChart)
  • Гистограмма (Histogram)

Пример с столбчатым графиком:

from openpyxl.chart import BarChart

# Создаём столбчатый график
bar_chart = BarChart()
bar_chart.add_data(data, titles_from_data=True)
bar_chart.set_categories(categories)

# Добавляем столбчатый график на лист
ws.add_chart(bar_chart, "F20") # Размещаем график ниже линейного

🧑‍💻 Вывод

Теперь ты знаешь, как автоматически создавать графики в Excel с помощью Python. Это не только упрощает подготовку отчётов, но и делает их более профессиональными и понятными для всех, кто их будет просматривать.

Вместо того чтобы вручную рисовать графики, ты можешь генерировать их на лету — быстро, эффективно и без ошибок. 🚀

🔮 Что дальше?

  • Хочешь узнать, как добавлять несколько графиков в один файл?
  • Нужно научиться генерировать графики для динамических данных, например, с базы данных?
  • Или, может быть, ты хочешь узнать, как отправить отчёт с графиками по email?

Пиши — разберём всё, как по нотам! 😎