Рубрики
Без рубрики

MATPLOTLIB – Как изменить размеры субплата

Как изменить размер ваших подломов MATPLOTLIB? Способ .Subplots () могут легко генерировать несколько подборков в рамках одного и того же рисунка построения. Но, как вы, возможно, уже заметили, все подломы имеют точно такой же размер и, кроме того, их размер будет регулироваться автоматически, в зависимости от того, сколько из них вы хотите отобразить … Matplotlib – Как изменить размеры субплата Подробнее »

Автор оригинала: Andrea Ridolfi.

Как изменить размер вашего matplotlib. подломы?

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

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

Короче

Обычный .subplots. () Метод действительно практичен для создания нескольких подпилков, но не может получить доступ и изменять размер этих подломов.

С другой стороны, метод .add_gridspec. () Результаты, чтобы быть больше трудоемкого времени для создания нескольких подломов одного и того же размера, но он представляет собой мощное решение, когда мы хотим изменить размер отдельных подломов.

После подразделения пространства в моде сетки, вы можете использовать метод .add_subplot. () , чтобы изменить размер каждого субплата, просто используя Индексация Python и нарезка Отказ

Создание фигуры MATPLOTLIB

В этом примере мы будем использовать библиотеку MATPLOTLIB только для построения осей и для изменения их размера; По этой причине мы просто импортируем этот конкретный пакет.

import matplotlib.pyplot as plt

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

Матплотлиб Функция, которая эксплуатируется для этой цели, называется .figure () Отказ На этот раз мы также входим в недвижимость под названием Construced_layout и мы устанавливаем его равным Правда Отказ Это свойство можно использовать для чистоты, чтобы соответствовать участкам на рисунке, что означает, что они автоматически будут автоматически распределены в вашем окне сюжета, независимо от их количества. Мы наконец назначаем фигуру на переменную « Рис ».

fig = plt.figure(constrained_layout=True)

.subplots () vs .add_gridspec ()

На данный момент мы должны создать несколько подломов, которые мы будем изменять. Один из наиболее широко используемых методов для этого, это .subplots (), Что генерирует массив осей, в зависимости от чисел, которые мы вводим в качестве входных параметров. Предположим, мы хотим создать 9 подборков; Достаточно ввести:

# Creating the subplots with .subplots() 
ax = fig.subplots(3,3)

Эти линии дадут 9 подломов, распределенные в моде сетки 3 × 3, такие как те, которые отображаются на рисунке 1.

Достижение того же результата с использованием метода .add_gridspec. () намного более утомительно и трудоемкое. Действительно, в этом последнем случае мы должны инициализировать каждый Subplot индивидуально, указывая также местоположение, в котором мы хотим, чтобы он был создан. Точнее, мы должны ввести количество строк и столбцов сетки, как входные параметры .add_gridspec. () а затем создать каждый Subplot, используя метод add_subplot () и указание для каждого сюжета его координаты на топор сетка.

Следующие строки кода описывают эту процедуру.

# Creating the subplots with .add_gridspec()
ax = fig.add_gridspec(3, 3)
ax1 = fig.add_subplot(ax[0, 0])
ax1.set_title('[0, 0]')
ax1 = fig.add_subplot(ax[0, 1])
ax1.set_title('[0, 1]')
ax1 = fig.add_subplot(ax[0, 2])
ax1.set_title('[0, 2]')
ax1 = fig.add_subplot(ax[1, 0])
ax1.set_title('[1, 0]')
ax1 = fig.add_subplot(ax[1, 1])
ax1.set_title('[1, 1]')
ax1 = fig.add_subplot(ax[1, 2])
ax1.set_title('[1, 2]')
ax1 = fig.add_subplot(ax[2, 0])
ax1.set_title('[2, 0]')
ax1 = fig.add_subplot(ax[2, 1])
ax1.set_title('[2, 1]')
ax1 = fig.add_subplot(ax[2, 2])
ax1.set_title('[2, 2]')

Мы также устанавливаем заголовок для каждого участка, содержащего координаты ее соответствующего местоположения в сетке. Результат затем отображается на рисунке 2.

Огромное преимущество использования .add_gridspec () Приходит в игру, когда мы хотим настроить размер каждого отдельного субплата. Эта задача не может быть выполнена .subplots () в любом случае. По этой причине, если вы хотите просто создать несколько подразделений, и вы не заинтересованы в изменении их размера, я бы порекомендовал использовать .subplots () , потому что это более интуитивно понятно и быстрее; С другой стороны, если вы заинтересованы в изменении макета подломов, которые отображаются на рисунке, перейдите с .add_gridspec. () .

В следующем разделе мы увидим, как это сделать подробно.

Изменение размера каждого Subplot с .add_gridspec () и .add_subplot ()

Изменение размера каждого Subplot, используя .add_gridspec. () легче, чем вы думаете.

Как только мы инициализировали сетку 3 × 3 с помощью .add_gridspec (3, 3) , Мы можем настроить размер и, следовательно, количество подломов, просто путем изменения входных координат в методе .add_subplot. () . Координаты оси, которые мы вводим в качестве входных параметров в .add_subplot. () Способ указывает на начальную и конечную позицию участка (как для рядов, так и для столбцов). Следовательно, достаточно, чтобы узнать, как работа по индексированию и нарезке, для настройки высоты и ширины каждого субплата.

Например, теперь мы создадим сюжет, который находится в первом ряду и имеет ширину 2/3 всей сети; Еще один, который имеет всего один столбец, но имеет высоту, которая охватывает всю сетку и помещается в последнюю колонку. Наконец, третий участок занимает 2 × 2 сетку в оставшемся пространстве (то есть последние два ряда и первые два столбца). Следующие строки кода описывают процедуру получения вышеупомянутого результата.

ax = fig.add_gridspec(3, 3)
ax1 = fig.add_subplot(ax[0, 0:2])
ax1.set_title('[0, 0:2]')
ax1 = fig.add_subplot(ax[0:, -1])
ax1.set_title('[0:, -1]')
ax1 = fig.add_subplot(ax[1:, 0:2])
ax1.set_title('[1:, 0:2]')

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

Как видите, мы настраиваем размер подломов, просто изменив их начальные и окончательные координаты; Единственная сложная часть, вспоминая, как работает индексация и нарезка Python.

Выводы

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

Пока метод .subplots () быстрее и проще для создания нескольких подломов одинакового размера, метод .add_gridspec. () более утомительно и трудоемкий.

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

Оригинал: “https://blog.finxter.com/matplotlib-how-to-change-subplot-sizes/”