Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Июл 2023
2 мин
1357

Работа с размером и расстоянием между графиками в Matplotlib

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

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

Вот типичный пример кода, который создает ряд графиков:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(10,60))

for i in range(10):
    plt.subplot(10, 1, i+1)
    plt.xlabel("Some X label")
    plt.ylabel("Some Y label")
    plt.title(f"Plot #{i+1}")
    plt.plot([0, 1, 2, 3, 4, 5],[i*j for j in range(6)])

fig.savefig('out.png', dpi=100)

Но если количество графиков будет увеличиваться, они начнут перекрывать друг друга.

Однако, решить данную проблему можно с помощью метода subplots_adjust(), который позволяет управлять расстоянием между графиками.

Метод subplots_adjust() принимает следующие параметры:

  • left, right, top, bottom – координаты краев фигуры (от 0 до 1);
  • wspace и hspace – расстояние между графиками.

Вот как можно изменить предыдущий пример, чтобы управлять расстоянием между графиками:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(10,60))

for i in range(10):
    plt.subplot(10, 1, i+1)
    plt.xlabel("Some X label")
    plt.ylabel("Some Y label")
    plt.title(f"Plot #{i+1}")
    plt.plot([0, 1, 2, 3, 4, 5],[i*j for j in range(6)])

plt.subplots_adjust(hspace = 0.5)
fig.savefig('out.png', dpi=100)

Теперь все графики на рисунке разделены и не перекрывают друг друга.

Добавить комментарий