$ sudo teach IT

Файл для практики

month,city,sales
1,Ереван,12000
2,Ереван,13500
3,Ереван,17000
4,Ереван,15000
5,Ереван,21000
6,Ереван,23000
7,Ереван,25000
8,Ереван,24000
9,Ереван,27000
10,Ереван,29000
11,Ереван,31000
12,Ереван,35000
1,Тбилиси,10000
2,Тбилиси,11500
3,Тбилиси,14500
4,Тбилиси,16000
5,Тбилиси,19000
6,Тбилиси,21000
7,Тбилиси,23000
8,Тбилиси,22500
9,Тбилиси,25000
10,Тбилиси,27000
11,Тбилиси,29000
12,Тбилиси,32000

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

Хотя данные одинаковые, восприниматься такие графики будут совершенно по-разному. Хорошая визуализация должна не только отображать информацию, но и помогать человеку быстро понять ее смысл.

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

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

Что вы узнаете в рамках статьи

  • Зачем оформлять графики.
  • Как добавлять заголовки.
  • Как подписывать оси.
  • Для чего нужна легенда.
  • Как изменять стиль линий.
  • Как использовать маркеры.
  • Как выбирать цвета для графиков.
  • Как отображать сетку.

Ключевые термины

  • Заголовок графика — краткое описание содержимого графика.
  • Подпись оси — текстовое описание значений по оси X или Y.
  • Легенда — элемент графика, поясняющий обозначения различных объектов.
  • Маркер — символ, отображающий отдельную точку данных.
  • Стиль линии — способ отображения линии на графике.
  • Цветовая схема — набор цветов, используемых в визуализации.
  • Сетка — вспомогательные линии, облегчающие чтение графика.

Почему оформление графиков важно

Новички часто сосредотачиваются только на построении графика. Получился график — значит задача выполнена. На практике этого недостаточно.

Представьте такой график:

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр", "Май"]
sales = [12000, 15000, 17000, 16000, 20000]

plt.plot(months, sales)

plt.show()

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

Заголовки графиков

Первое, что обычно добавляют аналитики, — это заголовок. Он помогает быстро понять назначение визуализации. Добавить заголовок можно через функцию title().

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр", "Май"]
sales = [12000, 15000, 17000, 16000, 20000]

plt.plot(months, sales)

plt.title("Продажи по месяцам")

plt.show()

Теперь зрителю не придется гадать, что именно отображается на графике. Хороший заголовок обычно отвечает на вопрос: «Что показывает этот график?»

Подписи осей

Даже наличие заголовка не всегда решает проблему. Необходимо также объяснить значения по осям. Для этого используются функции plt.xlabel() и plt.ylabel().

Полный пример:

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр", "Май"]
sales = [12000, 15000, 17000, 16000, 20000]

plt.plot(months, sales)

plt.title("Продажи по месяцам")
plt.xlabel("Месяц")
plt.ylabel("Выручка")

plt.show()

Теперь график полностью самодостаточен. Любой человек сможет понять, что по оси X отображаются месяцы, а по оси Y — выручка компании.

Легенда

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

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр"]

shop_a = [10000, 12000, 15000, 17000]
shop_b = [9000, 11000, 14000, 19000]

plt.plot(months, shop_a, label="Магазин А")
plt.plot(months, shop_b, label="Магазин Б")

plt.legend()

plt.show()

Параметр label задает подпись линии. Функция legend() отображает легенду на графике. Без легенды пользователю пришлось бы самостоятельно догадываться, какая линия к чему относится.

Настройка стилей линий

Иногда полезно выделять разные данные не только цветом, но и стилем линии. Matplotlib поддерживает различные варианты оформления.

Например, параметр linestyle позволяет изменять внешний вид линии:

plt.plot(months, sales, linestyle="-")   # сплошная линия
plt.plot(months, sales, linestyle="--")  # пунктирная линия
plt.plot(months, sales, linestyle=":")   # точечная линия

Полный список доступных стилей можно найти в официальной документации Matplotlib: Стили линий Matplotlib. На практике чаще всего используются сплошные и пунктирные линии. Такие стили особенно полезны при печати отчетов в черно-белом формате или при отображении нескольких линий на одном графике.

Маркеры

В предыдущем уроке мы уже знакомились с маркерами. Они помогают выделять отдельные наблюдения на графике.

Например:

plt.plot(
    months,
    sales,
    marker="o"
)

В данном случае каждая точка данных будет отображаться кружком. Полный список маркеров: Список маркеров Matplotlib

Комбинирование стилей

Стиль линии и маркер можно использовать одновременно.

Например:

plt.plot(
    months,
    sales,
    linestyle="--",
    marker="o"
)

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

Цветовые схемы

Цвет является одним из самых заметных элементов визуализации. Изменить цвет можно через параметр color.

plt.plot(
    months,
    sales,
    color="green"
)

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

Несколько цветов на одном графике

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

plt.plot(months, shop_a, color="blue")
plt.plot(months, shop_b, color="red")

Но даже в этом случае не стоит использовать слишком большое количество цветов одновременно. Чем проще график, тем легче его воспринимать.

Сетка графика

Еще один полезный инструмент — сетка. Сетка помогает точнее определять значения на графике. Добавить ее очень просто через метод plt.grid().

Полный пример:

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр", "Май"]
sales = [12000, 15000, 17000, 16000, 20000]

plt.plot(months, sales)

plt.title("Продажи по месяцам")
plt.xlabel("Месяц")
plt.ylabel("Выручка")

plt.grid()

plt.show()

Теперь пользователю проще оценивать значения по оси Y. Сетка особенно полезна для линейных графиков и диаграмм рассеяния.

Когда сетка может мешать

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

Наиболее частые ошибки

  • Отсутствие заголовка
    Пользователю сложно понять назначение графика.
  • Отсутствие подписей осей
    Непонятно, какие данные отображаются.
  • Использование слишком большого количества цветов
    График становится перегруженным.
  • Добавление легенды для одного объекта
    Часто это не имеет смысла.
  • Слишком яркая сетка
    Начинает отвлекать внимание от данных.
  • Использование множества различных стилей одновременно
    Ухудшается читаемость графика.

Наиболее частые вопросы

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

Итоги

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

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

В следующем разделе курса мы перейдем к более продвинутым возможностям Matplotlib и научимся создавать более сложные и профессиональные визуализации.

На следующий урок