Часто при работе с библиотекой 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)
Теперь все графики на рисунке разделены и не перекрывают друг друга.
Добавить комментарий