Все материалы
AIгайдстарт

Нейросеть для графиков и диаграмм: как построить и не соврать

Как построить график по данным с помощью нейросети: три рабочих пути, выбор типа диаграммы, где графики искажают данные и как их проверить. С промптами и кодом.

КейсПрактика26 сентября 2026 г.11 мин

Руководитель просит к обеду график: какие самолёты приносят больше всего выручки. Данные есть — выгрузка рейсов за день, 548 строк. Можно вставить таблицу в чат и попросить нейросеть «нарисовать диаграмму», и через десять секунд картинка готова. Вопрос в том, можно ли её отправлять. Ниже — три способа построить график по данным с помощью нейросети, настоящий пример на учебной таблице рейсов, типичные искажения и чек-лист проверки. Речь о графиках по данным: если вы ищете нейросеть для графического дизайна, логотипов или иллюстраций, это другая задача и другие инструменты.

Какую нейросеть взять и когда ей можно верить

Нейросеть хорошо справляется с графиком тогда, когда она не считает сама, а пишет и выполняет код: pandas, SQL, формулу в таблице. Такой график можно перепроверить. Если модель «прочитала» вставленную таблицу и нарисовала столбцы по памяти, числа под ними могут оказаться любыми.

  • Разовый график по файлу — чат-бот с выполнением кода (ChatGPT, Claude). Обязательно просите показать код и итоговую таблицу.
  • Регулярный отчёт или большой объём — нейросеть пишет Python или SQL, вы запускаете у себя.
  • Данные уже живут в Excel, Google Таблицах, Power BI или DataLens — встроенный AI этого инструмента.
  • Дашборд, который должен обновляться, — только BI. Чат выдаёт статичную картинку, не связанную с источником.
  • Проверяйте четыре вещи: сумму агрегатов, ось от нуля, тип диаграммы под вопрос и границы выборки («топ-10» при равенстве).

Три пути: сравнение

Все три пути рабочие, у них разная цена ошибки. Чем ближе нейросеть к исполняемому коду и к источнику данных, тем проще найти, где она ошиблась.

Как построить график с помощью нейросети: три варианта
Чат-бот строит самНейросеть пишет кодAI внутри BI и таблиц
Что делаете вызагружаете файл, пишете запросзапускаете код у себяпишете запрос в панели инструмента
Где считаются числав песочнице чат-ботана вашем компьютере или в базев модели данных инструмента
Обновлениенет, картинка разоваяперезапуск скриптавместе с источником
Как проверитьпопросить код и таблицу агрегатовчитать код, сверять итогиоткрыть поля и формулу визуала
Данные уходят наружуда, файл загружается в сервиснет, если не вставлять строки в промптзависит от лицензии и настроек
Подходит длябыстрого разового ответаотчётов, которые повторяютсядашбордов и командной работы

Путь 1. Чат-бот считает и рисует сам

ChatGPT и Claude умеют загружать CSV и Excel, писать Python и выполнять его в изолированной среде. По справке OpenAI, ChatGPT возвращает и результат, и код, который его получил; столбчатые, линейные, круговые и точечные диаграммы он может показать интерактивно. Claude в режиме создания файлов тоже пишет и запускает код, а график сохраняет файлом.

Ключевое слово — «выполняет». Если в ответе нет кода или блока с результатом вычислений, модель, скорее всего, ничего не считала, а угадывала. Так бывает, когда таблица вставлена текстом прямо в сообщение или функция анализа выключена. На маленькой таблице угадывание иногда совпадает с правдой, на 548 строках — нет.

Три правила для этого пути. Первое: просите сначала таблицу агрегатов, потом график. Второе: просите показать код и число строк, которое прочитал скрипт. Третье: не загружайте персональные данные и коммерческую тайну в сервис, который не одобрен в вашей компании. Официально эти сервисы в России работают с ограничениями, поэтому уточните, чем разрешено пользоваться. С российскими ассистентами (GigaChat, «Алиса») логика та же: если ассистент не показывает выполненный код, используйте второй путь.

codeПромпт для чат-бота с выполнением кода
Я загрузил CSV с рейсами за 5 августа 2026 (одна строка — один рейс).
Колонки: flight_no, departure_airport, arrival_airport, dep_time, status,
aircraft_code, passengers, revenue (выручка рейса, ₽).

1. Прочитай файл кодом. aircraft_code читай как текст.
   Выведи число строк, пропуски по колонкам и распределение status.
2. Посчитай по aircraft_code: число рейсов и сумму revenue.
   Покажи эту таблицу целиком до графика.
3. Проверь, что сумма revenue по группам равна сумме по всему файлу.
4. Построй горизонтальную столбчатую диаграмму выручки по коду самолёта:
   ось от нуля, сортировка по убыванию, подписи значений в млн ₽.
5. Покажи весь код, которым считал и рисовал. Ничего не считай в уме.

Путь 2. Нейросеть пишет код, вы запускаете

Этот путь медленнее на пять минут и надёжнее на порядок. Модели не нужно видеть ваши данные: достаточно описать колонки и что должно получиться. Код вы запускаете в Jupyter, в своём скрипте или в BI, где данные уже лежат. Такой скрипт можно перезапустить завтра на новой выгрузке и получить тот же график без нового разговора с чатом.

Ниже — код, который строит график из примера. В нём три вещи, которые стоит просить у нейросети всегда: явный тип колонки с кодами (иначе «319» и «SU9» могут прочитаться по-разному), сверка суммы по группам с суммой по таблице и ось, начинающаяся с нуля.

pythonВыручка по коду самолёта: pandas + matplotlib
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("flights-2026-08-05.csv", dtype={"aircraft_code": str})

# 1. Проверки до графика: строки, пропуски, статусы
print(len(df), df["revenue"].isna().sum())
print(df["status"].value_counts())

# 2. Агрегат считаем кодом, а не «в уме»
by_aircraft = (
    df.groupby("aircraft_code")
      .agg(flights=("flight_no", "size"), revenue=("revenue", "sum"))
      .sort_values("revenue")
)
by_aircraft["revenue_mln"] = by_aircraft["revenue"] / 1e6

# 3. Сверка: сумма по группам равна сумме по таблице
assert by_aircraft["revenue"].sum() == df["revenue"].sum()
print(by_aircraft)

# 4. График: горизонтальные столбцы, ось от нуля, подписи значений
fig, ax = plt.subplots(figsize=(8, 4.5))
bars = ax.barh(by_aircraft.index, by_aircraft["revenue_mln"], color="#6d5bd0")
ax.bar_label(bars, fmt="%.1f", padding=3)
ax.set_xlim(left=0)
ax.set_xlabel("Выручка, млн ₽")
ax.set_title("Выручка по типам самолётов, 5 августа 2026")
ax.spines[["top", "right"]].set_visible(False)
fig.tight_layout()
fig.savefig("revenue_by_aircraft.png", dpi=150)

Тот же агрегат на SQL для BI

Если данные лежат в базе, а график нужен в BI, просите у нейросети не картинку, а запрос. BI-система сама нарисует столбцы и будет обновлять их вместе с источником. Для plotly вместо matplotlib достаточно заменить последний блок на px.bar(...): логика подсчёта от библиотеки не зависит.

Запрос ниже возвращает те же восемь строк, что и pandas-скрипт, плюс долю каждого кода в общей выручке. Долю удобно держать рядом с суммой: по ней сразу видно, что два типа самолётов дают почти 45% дневной выручки.

Число рейсов, выручка и доля выручки по коду самолёта
select
  aircraft_code,
  count(*) as flights,
  sum(revenue) as revenue,
  round(100.0 * sum(revenue) / (select sum(revenue) from flights), 1) as revenue_share_pct
from flights
group by aircraft_code
order by revenue desc;

Пример: выручка по типам самолётов за 5 августа

Вот что получается на учебной таблице: 548 рейсов, из них 546 выполнены и 2 отменены, суммарная выручка 438,4 млн ₽. Больше всего принесли SU9 (Superjet 100) — 102,5 млн ₽, это 23,4% дня, и 763 (Boeing 767) — 93,6 млн ₽. Замыкает список CN1 (Cessna Caravan): 147 рейсов и всего 1,9 млн ₽.

Этот же пример показывает, почему график — ответ на конкретный вопрос. «Какой тип самолёта приносит больше выручки за день» — это сумма, и лидирует SU9. «Какой рейс в среднем доходнее» — это среднее на рейс, и там первым оказывается 773 (Boeing 777): 10 рейсов по 7,3 млн ₽ в среднем против 0,74 млн ₽ у SU9. Если в промпте не сказано, что считать, модель выберет сама, и вы узнаете об этом только из кода.

Выручка по коду самолёта за 5 августа 2026, млн ₽

Учебная таблица рейсов, 548 строк. Сумма revenue по всем рейсам, включая 165 рейсов без пассажиров и выручки. Ось начинается с нуля.

Выручка, млн ₽

Где график от нейросети врёт

Ошибки в графиках от нейросети почти никогда не выглядят как ошибки. Картинка аккуратная, подписи на месте, цвета приятные. Поэтому искать их нужно по списку, а не на глаз.

Неверные числа под графиком. Модель, которая не выполняла код, может выдать правдоподобные, но выдуманные суммы, особенно если таблица длинная и не поместилась в контекст целиком. Лечится только сверкой: итог по группам должен совпасть с итогом по файлу — в нашем примере 438 406 200 ₽.

Обрезанная ось. Разница между SU9 и 763 — 9,5%. Если ось выручки начинается не с нуля, а с 90 млн ₽, столбец SU9 становится в 3,5 раза длиннее столбца 763. Для столбчатых диаграмм ось обязана начинаться с нуля: длина столбца и есть число. Линейному графику допустимо начинаться не с нуля, но тогда начало оси должно быть подписано.

Неверный тип графика. Круговая диаграмма на восемь сегментов, где у CN1 доля 0,4%, нечитаема. Линия, соединяющая коды самолётов, намекает на порядок, которого нет. Коды 319, 321 и 733 выглядят как числа, и модель может положить их на числовую ось.

Агрегирование в уме и тихие границы выборки. Попросите «топ-10 аэропортов по числу вылетов», и получите десять столбцов. Но на десятом месте три аэропорта с 10 рейсами: HMA, SGC и BZK. И value_counts().head(10) в pandas, и LIMIT 10 в SQLite берут SGC, а два других молча отбрасывают. Граница топа определилась порядком строк, а не данными.

Рейсы по аэропорту вылета, 5 августа 2026: хвост «топ-10»
МестоАэропортРейсов
1–2SVO, DME49
3LED33
4VKO26
5OVB17
6–7KJA, SVX12
8–9AER, PEE11
10–12HMA, SGC, BZK10
Что делать с равенством на границе

Либо показывать всех с равным значением (в pandas — nlargest(10, keep="all"), вернёт 12 аэропортов), либо явно добавить второй ключ сортировки и написать его в подписи. Попросите нейросеть сообщать, если на границе топа есть равенство.

Как выбрать тип диаграммы под вопрос

Нейросеть подберёт тип графика сама, но выбирает она по форме данных, а не по вашему вопросу. Надёжнее назвать тип в промпте. Правило простое: сначала сформулируйте вопрос одним предложением, потом смотрите в таблицу.

Вопрос → тип графика
ВопросТипНа что смотреть
Кто больше, кто меньшегоризонтальные столбцы, по убываниюось от нуля, подписи значений
Как менялось во временилинияравный шаг дат, неполный последний период
Из чего состоит итогстолбцы с накоплением или 100% столбцыне больше 5–6 частей, остальное в «прочее»
Как распределены значениягистограмма или boxplotширина корзин меняет картину
Связаны ли две метрикиточечная диаграммасвязь не означает причину
Где теряем пользователейворонкаодин и тот же знаменатель на шагах
Как удерживаются когортытепловая картанезрелые когорты справа внизу

Путь 3. AI внутри Excel, Google Таблиц, Power BI и DataLens

Если данные уже в рабочем инструменте, встроенный помощник удобнее чата: он видит структуру таблицы и строит визуал из настоящих полей. Функции меняются каждый месяц, поэтому ниже — только то, что подтверждает справка производителей на осень 2026.

Для запроса «нейросеть для дашбордов» ответ один: дашборд — это BI. Чат-бот может помочь спроектировать его и написать запросы, но живой дашборд, который обновляется каждое утро, строится в Power BI, DataLens или аналоге.

  • Copilot в Excel строит графики и сводные таблицы по запросу, поддерживает больше десятка типов диаграмм (не все, что есть в Excel). Навык Python в Excel пишет редактируемые формулы Python прямо в ячейках. Нужна подписка с Copilot.
  • Copilot в Power BI создаёт страницу отчёта или отдельные визуалы по текстовому описанию, может предложить содержание отчёта и пишет DAX. Работает поверх семантической модели, поэтому числа берутся из тех же мер, что и в остальном отчёте. Доступен не на всех лицензиях.
  • Gemini в Google Таблицах переводит запрос в Python, выполняет его и вставляет график в лист. Ограничение из справки Google: график вставляется статичным изображением и не обновляется при изменении данных.
  • Нейроаналитик в Yandex DataLens помогает с формулами вычисляемых полей, анализирует дашборды и отдельные чарты, пишет и отлаживает код в редакторе визуализаций. На запросы действуют лимиты.

Промпты для графиков и дашбордов

Хороший промпт для графика описывает данные, вопрос, агрегат, тип диаграммы и проверку. Последняя часть важнее всего: она заставляет модель показать работу. Эти заготовки подходят для любого из трёх путей.

codeГотовые промпты: код, выбор графика, проверка чужого графика
— Код без передачи данных —
Напиши Python-код (pandas + matplotlib) для CSV с колонками: <список колонок и типы>.
Одна строка — <что такое одна строка>. Вопрос: <вопрос одним предложением>.
Посчитай <сумму / среднее / число уникальных> по <колонке>, выведи таблицу агрегатов,
сверь итог с суммой по файлу через assert. График: <тип>, ось от нуля,
сортировка по убыванию, подписи значений. Сообщи, если на границе топа есть равенство.

— Выбор типа графика —
Вот вопрос руководителя: <вопрос>. Вот колонки: <колонки>.
Предложи два типа диаграммы, для каждого скажи, какой вывод с него читается
и чем он может ввести в заблуждение. Не строй график, пока я не выберу.

— Проверка готового графика —
Вот график и таблица, из которой он построен. Проверь: совпадают ли числа
на графике с таблицей, начинается ли ось с нуля, подходит ли тип графика
к вопросу <вопрос>, не потеряны ли строки при фильтрации или «топ-N».
Для каждой проверки выполни код и покажи результат.

Чек-лист перед отправкой графика

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

  • Вы видели код или формулу, которой посчитан каждый столбец.
  • Сумма по группам совпадает с итогом по таблице; число строк совпадает с исходным файлом.
  • Понятно, что стоит в числителе: сумма, среднее, доля или число уникальных. Это написано в подписи.
  • Фильтры названы: какой период, включены ли отменённые рейсы, возвраты, тестовые записи.
  • Ось столбцов начинается с нуля, единицы измерения подписаны (₽, млн ₽, %).
  • Тип диаграммы отвечает на вопрос, а не просто вмещает данные.
  • На границе «топ-N» нет равенства, которое решилось случайно.
  • Коды и идентификаторы прочитаны как текст, а не как числа.
  • Один вывод под графиком — своими словами, не пересказ модели.

Что почитать дальше

Нейросеть ускоряет работу с графиками, если вы умеете прочитать код, который она написала. Проще всего начать с SQL: большинство графиков в BI — это group by плюс правильный фильтр. Базовые запросы можно отработать в тренажёре «SQL с нуля» на той же базе авиаперевозок, из которой взят пример.

Продолжить чтение
Вся библиотека