Графики линий, столбцов и рассеяния
Создавайте распространённые типы диаграмм
«Графики линий, столбцов и рассеяния» — бесплатный урок Python Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.
Три рабочих типа диаграмм
Большинство историй о данных рассказывают с помощью трёх типов диаграмм:
- Линейный график — для отображения тенденций вдоль упорядоченной оси, например времени
- Столбчатая диаграмма — для сравнения категорий
- Диаграмма рассеяния — для отображения взаимосвязей между двумя числовыми переменными
Каждому типу соответствует один метод Matplotlib для области построения.
Линейные графики
Линейный график соединяет точки по порядку. В Matplotlib для этого используется ax.plot(x, y). Применяйте его, когда ось x имеет осмысленный порядок, например для дней или измерений во времени.
Данные для линейного графика — это всего две параллельные последовательности.
months = [1, 2, 3, 4, 5]
sales = [120, 150, 130, 170, 200]
for m, s in zip(months, sales):
print('Month', m, '->', s)
print('Trend:', 'up' if sales[-1] > sales[0] else 'down')Столбчатые диаграммы
Столбчатая диаграмма сравнивает отдельные категории. Вызов выглядит так: ax.bar(categories, values). Столбцы начинаются с нуля, поэтому их высоты можно напрямую сравнивать.
Используйте столбцы, когда позиции по оси x обозначены метками, а не образуют непрерывную шкалу.
fruits = ['apple', 'banana', 'cherry']
counts = [30, 45, 15]
for f, c in zip(fruits, counts):
bar = '#' * (c // 5)
print(f.ljust(8), bar, c)Горизонтальные столбцы
Если метки категорий длинные, горизонтальные столбцы воспринимаются лучше. Matplotlib предоставляет ax.barh(categories, values).
Логика остаётся той же, меняется только ориентация.
Диаграммы рассеяния
Диаграмма рассеяния рисует отдельный маркер для каждой точки данных с помощью ax.scatter(x, y). Она показывает корреляцию, кластеры и выбросы между двумя числовыми переменными.
В отличие от линейного графика, точки не соединяются.
heights = [150, 160, 170, 180, 190]
weights = [50, 60, 68, 78, 90]
pairs = list(zip(heights, weights))
print('Points:', pairs)
rising = all(weights[i] < weights[i+1] for i in range(len(weights)-1))
print('Positive trend:', rising)Выбор подходящей диаграммы
Выбирайте тип диаграммы в зависимости от вопроса, на который вы отвечаете:
- Как значение меняется со временем? Линейный график
- Какая категория самая большая? Столбчатая диаграмма
- Связаны ли две переменные? Диаграмма рассеяния
Неправильный выбор может ввести читателей в заблуждение, например если использовать линейный график для неупорядоченных категорий.
Несколько рядов данных
Вы можете несколько раз вызвать ax.plot() для одной и той же области построения, чтобы наложить несколько линий. Каждый вызов добавляет ещё один ряд данных. Позже различить их поможет легенда.
Тот же принцип наложения работает для диаграмм рассеяния и комбинированных типов диаграмм.
series_a = [1, 2, 3, 4]
series_b = [4, 3, 2, 1]
for i in range(len(series_a)):
print('x', i, 'a', series_a[i], 'b', series_b[i])Маркеры и стили линий
Линейные графики принимают строку формата, например ax.plot(x, y, 'o--') рисует маркеры в виде кружков, соединённые пунктирной линией.
oмаркер в виде кружка--пунктирная линияrкрасный цвет
Эти сокращения позволяют быстро изменять исследовательские графики.
Сгруппированные столбцы
Чтобы сравнить два значения для каждой категории, сместите позиции столбцов. Сдвиньте одну группу на небольшую величину, чтобы столбцы расположились рядом.
Позиции вычисляются с помощью простых арифметических операций над индексом.
categories = ['Q1', 'Q2', 'Q3']
width = 0.4
for i, cat in enumerate(categories):
left_pos = i - width / 2
right_pos = i + width / 2
print(cat, 'group A at', left_pos, 'group B at', right_pos)Пузырьковые диаграммы
Диаграмма рассеяния может отображать третью переменную размером маркера: ax.scatter(x, y, s=sizes). Более крупные пузыри означают большие значения. Так в одной диаграмме помещаются три измерения.
Выбирайте разумные размеры, чтобы пузыри не сливались в одно пятно.
Как избежать вводящих в заблуждение диаграмм
Тип диаграммы несёт смысл, поэтому неправильный выбор может ввести в заблуждение. Линия, проведённая через неупорядоченные категории, создаёт впечатление несуществующей тенденции. Столбцы, начинающиеся не с нуля, преувеличивают различия.
Всегда проверяйте, соответствует ли визуальное представление структуре ваших данных.
Быстрая проверка
Подберите подходящую диаграмму для каждого вопроса.
Итоги
Теперь вы знаете три основных вызова для построения диаграмм:
ax.plot(x, y)— для тенденций вдоль упорядоченной осиax.bar(cats, vals)— для сравнения категорийax.scatter(x, y)— для отображения взаимосвязей; параметрs=задаёт пузыри
Накладывайте несколько рядов данных на одну область построения и выбирайте тип, соответствующий вашему вопросу.
Часто задаваемые вопросы
Урок «Графики линий, столбцов и рассеяния» бесплатный?
Да — полный текст урока «Графики линий, столбцов и рассеяния» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.
Чему я научусь в уроке «Графики линий, столбцов и рассеяния»?
Создавайте распространённые типы диаграмм Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Python Academy?
Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Графики линий, столбцов и рассеяния»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Python Academy?
Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Фигуры и оси
- Графики линий, столбцов и рассеяния
- Настройка графиков
- Подграфики и компоновка