Нейросеть для графиков и диаграмм: как построить и не соврать
Как построить график по данным с помощью нейросети: три рабочих пути, выбор типа диаграммы, где графики искажают данные и как их проверить. С промптами и кодом.
Содержание статьи
Руководитель просит к обеду график: какие самолёты приносят больше всего выручки. Данные есть — выгрузка рейсов за день, 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, «Алиса») логика та же: если ассистент не показывает выполненный код, используйте второй путь.
Я загрузил 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» могут прочитаться по-разному), сверка суммы по группам с суммой по таблице и ось, начинающаяся с нуля.
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. Если в промпте не сказано, что считать, модель выберет сама, и вы узнаете об этом только из кода.
Учебная таблица рейсов, 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, а два других молча отбрасывают. Граница топа определилась порядком строк, а не данными.
| Место | Аэропорт | Рейсов |
|---|---|---|
| 1–2 | SVO, DME | 49 |
| 3 | LED | 33 |
| 4 | VKO | 26 |
| 5 | OVB | 17 |
| 6–7 | KJA, SVX | 12 |
| 8–9 | AER, PEE | 11 |
| 10–12 | HMA, SGC, BZK | 10 |
Либо показывать всех с равным значением (в 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 помогает с формулами вычисляемых полей, анализирует дашборды и отдельные чарты, пишет и отлаживает код в редакторе визуализаций. На запросы действуют лимиты.
Промпты для графиков и дашбордов
Хороший промпт для графика описывает данные, вопрос, агрегат, тип диаграммы и проверку. Последняя часть важнее всего: она заставляет модель показать работу. Эти заготовки подходят для любого из трёх путей.
— Код без передачи данных —
Напиши Python-код (pandas + matplotlib) для CSV с колонками: <список колонок и типы>.
Одна строка — <что такое одна строка>. Вопрос: <вопрос одним предложением>.
Посчитай <сумму / среднее / число уникальных> по <колонке>, выведи таблицу агрегатов,
сверь итог с суммой по файлу через assert. График: <тип>, ось от нуля,
сортировка по убыванию, подписи значений. Сообщи, если на границе топа есть равенство.
— Выбор типа графика —
Вот вопрос руководителя: <вопрос>. Вот колонки: <колонки>.
Предложи два типа диаграммы, для каждого скажи, какой вывод с него читается
и чем он может ввести в заблуждение. Не строй график, пока я не выберу.
— Проверка готового графика —
Вот график и таблица, из которой он построен. Проверь: совпадают ли числа
на графике с таблицей, начинается ли ось с нуля, подходит ли тип графика
к вопросу <вопрос>, не потеряны ли строки при фильтрации или «топ-N».
Для каждой проверки выполни код и покажи результат.Чек-лист перед отправкой графика
Пять минут на эти вопросы экономят неловкий разговор, когда руководитель пересчитает цифру сам.
- Вы видели код или формулу, которой посчитан каждый столбец.
- Сумма по группам совпадает с итогом по таблице; число строк совпадает с исходным файлом.
- Понятно, что стоит в числителе: сумма, среднее, доля или число уникальных. Это написано в подписи.
- Фильтры названы: какой период, включены ли отменённые рейсы, возвраты, тестовые записи.
- Ось столбцов начинается с нуля, единицы измерения подписаны (₽, млн ₽, %).
- Тип диаграммы отвечает на вопрос, а не просто вмещает данные.
- На границе «топ-N» нет равенства, которое решилось случайно.
- Коды и идентификаторы прочитаны как текст, а не как числа.
- Один вывод под графиком — своими словами, не пересказ модели.
Что почитать дальше
Нейросеть ускоряет работу с графиками, если вы умеете прочитать код, который она написала. Проще всего начать с SQL: большинство графиков в BI — это group by плюс правильный фильтр. Базовые запросы можно отработать в тренажёре «SQL с нуля» на той же базе авиаперевозок, из которой взят пример.
Материалы по теме

ИИ в работе аналитика: где нейросеть помогает, а где врёт
Как аналитику работать с нейросетями: какие задачи ИИ ускоряет, где выдумывает цифры, как ставить задачу и проверять ответ. С результатами нашего эксперимента.

Нейросеть для анализа данных: эксперимент на 548 рейсах
Проверили четыре нейросети на таблице рейсов с известными ответами: ответ текстом, SQL и код на Python. Какая нейросеть лучше для анализа данных и как её проверить.

Нейросеть для Excel: формулы, сводные таблицы и проверка
Нейросеть для Excel и Google Таблиц: формулы ВПР и СУММЕСЛИМН, сводные таблицы, Power Query. Какие инструменты есть в 2026 году, где ИИ ошибается и как проверить формулу.