
Размер графика в Matplotlib напрямую влияет на читаемость данных. По умолчанию большинство графиков создаются с размером 6 на 4 дюйма, что может быть слишком мало для сложных диаграмм с множеством точек или длинными подписями осей. Для точного контроля визуального представления используется параметр figsize, который задаётся при создании объекта фигуры: plt.figure(figsize=(ширина, высота)).
Помимо figsize, размер текста подписей осей, заголовков и легенд влияет на восприятие графика. Настройка через rcParams позволяет задать глобальные параметры: plt.rcParams[‘axes.labelsize’] = 14 или plt.rcParams[‘legend.fontsize’] = 12, что упрощает согласованное оформление нескольких графиков в одном проекте.
При сохранении графиков важно учитывать разрешение изображения. Параметр dpi определяет плотность пикселей: plt.savefig(‘graph.png’, dpi=300) обеспечивает чёткое отображение даже при печати. Комбинирование figsize и dpi позволяет создавать графики оптимального размера как для экранного просмотра, так и для публикаций.
Установка размеров графика через figsize
Параметр figsize задаёт ширину и высоту графика в дюймах при создании фигуры в Matplotlib. Правильная установка размеров позволяет улучшить читаемость подписей осей и легенд, а также предотвращает наложение элементов на плотных диаграммах.
Примеры использования:
- Создание базового графика с заданным размером:
plt.figure(figsize=(8, 6))
- Увеличение ширины для длинных временных рядов:
plt.figure(figsize=(12, 5))
- Создание высоких графиков для вертикальных столбцов:
plt.figure(figsize=(6, 10))
Рекомендации по выбору размера:
- Для простых графиков достаточно 6×4 дюймов.
- Для диаграмм с множеством точек или длинными подписями осей лучше использовать 8×6 или 10×6.
- Если график будет публиковаться в статье, стоит увеличить размер до 12×8 и одновременно задать dpi=300 при сохранении.
Использование figsize совместно с другими параметрами оформления обеспечивает гибкую настройку графиков под любые задачи визуализации данных.
Регулировка размеров отдельных элементов с помощью rcParams

Matplotlib позволяет изменять размер отдельных элементов графика через глобальные настройки rcParams. Это упрощает оформление нескольких графиков в едином стиле и обеспечивает согласованность подписей и легенд.
Основные параметры для регулировки размеров:
- axes.labelsize – размер текста подписей осей. Пример: plt.rcParams[‘axes.labelsize’] = 14.
- xtick.labelsize и ytick.labelsize – размеры подписей делений осей: plt.rcParams[‘xtick.labelsize’] = 12.
- legend.fontsize – размер текста легенды: plt.rcParams[‘legend.fontsize’] = 10.
- title.size – размер заголовка графика: plt.rcParams[‘axes.titlesize’] = 16.
Для комплексного оформления рекомендуется задать несколько параметров одновременно:
plt.rcParams.update({
'axes.labelsize': 14,
'xtick.labelsize': 12,
'ytick.labelsize': 12,
'legend.fontsize': 10,
'axes.titlesize': 16
})
Использование rcParams позволяет быстро адаптировать графики под разные форматы отображения, будь то экранная презентация или печатная публикация, без необходимости менять каждый элемент вручную.
Изменение размеров при сохранении изображения

При сохранении графиков Matplotlib параметр dpi определяет плотность пикселей и напрямую влияет на качество изображения. Например, для публикаций лучше использовать dpi=300, а для экранного просмотра достаточно dpi=100.
Размер изображения при сохранении зависит от сочетания figsize и dpi. Формула для расчёта пикселей: ширина_в_пикселях = figsize[0] * dpi, высота_в_пикселях = figsize[1] * dpi. Это позволяет точно контролировать итоговый размер файла.
Примеры сохранения графиков:
- Для презентации: plt.savefig(‘graph.png’, dpi=150)
- Для публикации: plt.savefig(‘graph_highres.png’, dpi=300)
- С указанием формата и прозрачности: plt.savefig(‘graph.svg’, dpi=300, transparent=True)
Использование bbox_inches=’tight’ при сохранении позволяет автоматически подгонять границы графика и исключать лишние поля, что особенно важно при экспорте диаграмм с длинными подписями осей или большим количеством элементов.
Автоматическая подстройка размера для плотных данных
При визуализации большого объёма данных графики часто становятся перегруженными: подписи осей накладываются, линии сливаются. Matplotlib позволяет автоматически подстраивать размеры элементов с помощью tight_layout(). Этот метод пересчитывает отступы между осями, заголовками и легендой, чтобы элементы не перекрывали друг друга.
Пример использования:
fig, ax = plt.subplots(figsize=(10, 6)) ax.plot(data_x, data_y) plt.tight_layout() plt.show()
Для сложных графиков с несколькими осями и легендами рекомендуется дополнительно использовать constrained_layout=True при создании фигуры: fig, ax = plt.subplots(constrained_layout=True, figsize=(12, 8)). Это позволяет Matplotlib автоматически распределять пространство между подграфиками и сохранять читаемость при плотных данных.
Если плотность точек очень высокая, полезно увеличивать размер фигуры через figsize совместно с tight_layout() или constrained_layout, чтобы обеспечить достаточное пространство для подписей осей и легенд.
Изменение размеров легенды и подписей осей

Размер текста осей и легенды напрямую влияет на восприятие графика. Для изменения размера подписей осей используется параметр fontsize при вызове set_xlabel и set_ylabel: ax.set_xlabel(‘Название оси’, fontsize=14), ax.set_ylabel(‘Название оси’, fontsize=14).
Легенду можно настроить с помощью legend(), задавая размер шрифта: ax.legend(fontsize=12). Это особенно важно для графиков с большим количеством линий или маркеров, чтобы подписи оставались читаемыми.
Если используется несколько графиков на одной фигуре, рекомендуется комбинировать изменение размера осей и легенды с увеличением figsize, чтобы все элементы не перекрывали друг друга. Пример:
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(x1, y1, label='Линия 1')
ax.plot(x2, y2, label='Линия 2')
ax.set_xlabel('Время, сек', fontsize=14)
ax.set_ylabel('Значение', fontsize=14)
ax.legend(fontsize=12)
plt.show()
Для глобальной настройки всех графиков можно использовать rcParams: plt.rcParams[‘axes.labelsize’]=14, plt.rcParams[‘legend.fontsize’]=12, что позволяет стандартизировать размер текста на всех графиках проекта.
Настройка размера графика в интерактивных режимах
В интерактивных режимах Matplotlib позволяет изменять размер графиков динамически без пересоздания фигуры. Это полезно при работе в Jupyter Notebook или интерактивной консоли Python.
Основные методы настройки размера в интерактивных режимах:
- %matplotlib notebook или %matplotlib widget – включение интерактивного режима в Jupyter Notebook.
- fig.set_size_inches(width, height) – изменение размера существующей фигуры. Пример:
fig, ax = plt.subplots() fig.set_size_inches(10, 6) plt.show()
- plt.gcf().set_size_inches(width, height) – изменение размера текущей активной фигуры без её пересоздания.
Рекомендации по использованию:
- Для графиков с плотными данными увеличивайте ширину и высоту фигуры, чтобы все элементы оставались читаемыми.
- После изменения размера стоит вызвать plt.tight_layout() для корректной расстановки осей и подписей.
- Для интерактивной работы с несколькими подграфиками используйте constrained_layout=True при создании фигуры, чтобы Matplotlib автоматически распределял пространство.
Такие методы позволяют гибко подстраивать визуализацию под динамические условия без потери качества и читаемости графика.
Комбинирование нескольких графиков с разными размерами

При создании нескольких графиков на одной фигуре часто возникает необходимость задать разные размеры для подграфиков, чтобы важные данные занимали больше пространства. Matplotlib позволяет управлять размером каждого подграфика через gridspec и параметры width_ratios и height_ratios.
Пример организации подграфиков с разными размерами:
import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec fig = plt.figure(figsize=(12, 6)) gs = GridSpec(2, 3, figure=fig, width_ratios=[2, 1, 1], height_ratios=[1, 2]) ax1 = fig.add_subplot(gs[0, 0]) ax2 = fig.add_subplot(gs[0, 1]) ax3 = fig.add_subplot(gs[1, :])
Сравнительная таблица подходов:
| Метод | Применение | Преимущества |
|---|---|---|
| figsize | Задаёт общий размер всей фигуры | Простая настройка, подходит для одинаковых подграфиков |
| GridSpec с width_ratios/height_ratios | Управление относительными размерами отдельных подграфиков | Позволяет выделять более важные графики, гибкая компоновка |
| add_axes | Создание подграфиков с точными координатами и размерами | Полный контроль над положением и размером каждого графика |
Использование этих методов позволяет комбинировать несколько графиков на одной фигуре, сохраняя читаемость и выделяя ключевые данные за счёт увеличения размера отдельных подграфиков.
Вопрос-ответ:
Как изменить размер графика в Matplotlib для публикации?
Для публикаций рекомендуется увеличивать фигуру с помощью параметра figsize при создании фигуры: plt.figure(figsize=(12, 8)). Одновременно стоит указать высокое разрешение при сохранении через dpi, например plt.savefig(‘graph.png’, dpi=300), чтобы график оставался чётким при печати.
Можно ли изменять размеры графика после его создания?
Да, если график уже создан, его размер можно изменить с помощью метода set_size_inches объекта фигуры: fig.set_size_inches(10, 6). После изменения рекомендуется вызвать plt.tight_layout() для корректной расстановки подписей и легенды.
Как сделать легенду и подписи осей более читаемыми на маленьком графике?
Размер текста осей и легенды регулируется параметрами fontsize. Для подписей осей: ax.set_xlabel(‘X’, fontsize=14), ax.set_ylabel(‘Y’, fontsize=14). Для легенды: ax.legend(fontsize=12). Эти настройки позволяют сохранить читаемость даже при небольшом размере фигуры.
Как адаптировать графики с большим количеством данных?
Для плотных графиков полезно использовать tight_layout() или constrained_layout=True при создании фигуры. Эти методы автоматически подстраивают отступы между осями, заголовками и легендой. Также стоит увеличить figsize, чтобы линии и подписи не перекрывались.
Можно ли создавать несколько графиков с разными размерами на одной фигуре?
Да, для этого используют GridSpec с параметрами width_ratios и height_ratios. Это позволяет выделять важные подграфики большим пространством, сохраняя компактность менее значимых графиков. Для точного размещения можно использовать add_axes, задавая координаты и размеры каждого подграфика.
