В блог
Улучшаем визуал графиков вместе с Matplotlib - IT Resume

Улучшаем визуал графиков вместе с Matplotlib

Дата последнего обновления: 05.03.2025
Дата размещения: 23.02.2025
Людмила Ильичева

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

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

Импорт необходимых библиотек

Для начала необходимо импортировать библиотеки:

import matplotlib.pyplot as plt
import numpy as np

I. Изменение стиля графиков

Matplotlib сам предлагает нам несколько предустановленных стилей для графиков. Чтобы применить стиль, используйте:

plt.style.use('seaborn-darkgrid') # Применяем стиль seaborn с темным фоном и сеткой


Среди доступных стилей можно выбрать ggplot, bmh, seaborn и другие. Это изменит внешний вид всех последующих графиков в текущей сессии.

Настройка параметров шрифтов

Вы можете настроить шрифты, размеры и цвета глобально с помощью rcParams:

plt.rcParams.update({
'font.size': 12, # Общий размер шрифта для текста
'axes.titlesize': 14, # Размер шрифта для заголовков осей
'axes.labelsize': 12, # Размер шрифта для подписей осей
'xtick.labelsize': 10, # Размер шрифта для меток на оси X
'ytick.labelsize': 10 # Размер шрифта для меток на оси Y
})


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

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

Вот основные из них:

**1) linestyle или ls.
**
Определяет стиль линии:
'-' сплошная линия
'--' пунктирная линия
'-.' штрихпунктирная линия
':' точечная линия

2) linewidth или lw.
Устанавливает толщину линии (например, linewidth=2).

3) color или c.
Задает цвет линии (например, color='blue')

4) marker.
Определяет стиль маркера для точек на графике:
'o': круг
's': квадрат
'D': ромб
'x': крестик
и другие (всего более 20 типов маркеров).

5) markersize или ms.
Устанавливает размер маркера (например, markersize=10).

6) markeredgecolor или mec.
Задает цвет границы маркера.

7) markerfacecolor или mfc.
Устанавливает цвет заливки маркера.

8) markevery.
Позволяет отображать только каждую N-ю точку, что полезно при большом количестве данных.

Пример применения этих параметров:

# Создание линейного графика с настройками стиля линий и маркеров
linestyle='--', # Стиль линии: пунктирная линия
plt.plot(x, y, # Данные по осям X и Y
linewidth=2, # Толщина линии: 2
color='blue', # Цвет линии: синий
marker='o', # Стиль маркера: круг
markersize=8, # Размер маркера: 8
markeredgecolor='black', # Цвет границы маркера: черный
markerfacecolor='yellow', # Цвет заливки маркера: желтый
markevery=5) # Отображать каждую 5-ю точку


II. Изменение стиля столбчатых диаграмм

Мы уже рассказывали, что в Matplotlib функция plt.bar() используется для создания столбчатых диаграмм. Она принимает несколько параметров, которые позволяют настраивать внешний вид и поведение графиков. Рассмотрим основные настройки стилей для функции plt.bar().

  1. width (по умолчанию 0.8): Ширина столбцов.
  2. bottom (по умолчанию 0): Y-координаты нижней стороны столбцов.
  3. align (по умолчанию 'center'): Выравнивание столбцов относительно координат X:

'center': Центрировать основание на позициях X.
'edge': Выравнивание левых краев столбцов с позициями X.
4) color: Задает цвет заливки для столбцов. Можно использовать строку с названием цвета, HEX-код или список цветов для каждого столбца.
5) edgecolor: Устанавливает цвет границы столбцов.
6) linewidth: Устанавливает ширину границы столбцов. Если 0, границы не рисуются.
7) tick_label: Подписи для меток на оси X. Если не указаны, используются числовые метки по умолчанию.
8) label: Подпись для всей выборки данных или для отдельных столбцов (если передан список).

Например:

# Создание столбчатой диаграммы с использованием всех параметров
plt.bar(categories, values,
width=0.5, # Ширина столбцов
bottom=2, # Y-координаты нижней стороны столбцов
align='edge', # Выравнивание: левые края столбцов с позициями X
color=['red', 'green', 'blue', 'orange'], # Цвета заливки для каждого столбца
edgecolor='black', # Цвет границы столбцов
linewidth=1.5, # Толщина границы столбцов
tick_label=categories, # Подписи для меток на оси X
label='Значения') # Подпись для всей выборки данных



Горизонтальная столбчатая диаграмма

Также можно создать горизонтальную диаграмму с помощью функции barh():

# Создание горизонтальной столбчатой диаграммы
plt.barh(categories, values,
color=['cyan', 'magenta', 'yellow', 'lime'], # Цвета столбцов
edgecolor='black') # Цвет границы



III. Изменение стиля круговых диаграмм

Настройка стиля для круговой диаграммы в Matplotlib позволяет создавать визуализации, которые легко воспринимаются и выглядят профессионально. Рассмотрим основные параметры функции plt.pie().

1) colors: Цвета для секторов. Можно использовать список цветов или строку с названием цвета.
2) explode: Позволяет "выдвинуть" сектора из центра диаграммы для акцента.
3) autopct: Формат отображения процентов на секторах (например, '%1.1f%%').
4) shadow: Если True, добавляет тень к секторам.
5) startangle: Угол, с которого начинается первый сектор.
6) wedgeprops: Словарь свойств для настройки внешнего вида секторов (например, цвет границы).

Например:

# Создание круговой диаграммы с настройками стиля
plt.pie(data,
labels=labels,
colors=colors,
explode=explode,
autopct='%1.1f%%', # Отображение процентов
shadow=True, # Добавление тени
startangle=140) # Угол начала




Используя параметры функций plot(), bar(), barh() и pie() , вы можете создать информативные и визуально привлекательные графики и диаграммы с помощью Matplotlib.

Экспериментируйте с различными настройками стиля для достижения наилучших результатов в ваших проектах!

Подпишитесь на нашу рассылку
Имя*
Email*
Номер телефона*
Заполняя данную форму, Вы соглашаетесь с политикой конфиденциальности
Никакого спама. Только точечные рассылки с лучшими материалами.