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

Как настроить несколько подпилотов в Matplotlib

Эта статья будет охватывать конкретный вопрос, который встречается с тем, что большинство пользователей Python столкнутся при использовании MATPLOTLIB для построения их графиков. Я говорю о определении нескольких подломов и возможность доступа и изменять свои свойства индивидуально. В следующих разделах мы увидим, как использовать функцию matplotlib .subplots () Для генерации нескольких подпилок и … Как настроить несколько подпилотов в Matplotlib Подробнее This article will cover a specific issue that most Python users encounter when using Matplotlib for plotting their graphs. I am talking about defining multiple subplots and being able to access and change their properties individually. In the following sections, we will see how to use the Matplotlib function .subplots() for generating multiple subplots and … How to Customize Multiple Subplots in Matplotlib Read More »

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

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

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

Я объяснил эту статью в следующем видеоуросе:

Импорт библиотек

Поскольку мы просто создадим некоторые подложки и изменим некоторые свои свойства, единственная библиотека, которая будет использоваться на протяжении всего примера, является Матплотлиб; Более конкретно, мы импортируем Matplotlib.pyplot. Пакет, чтобы иметь возможность с участием и модифицировать наши заговорные окна.

import matplotlib.pyplot as plt

Создание окна построения и определение подломов

Первый шаг к созданию Матплотлиб Участок – это определение окна построения, то есть окна, которое будет отображаться после выполнения кода, и это будет содержать все впоследствии определенные участки. Для этого мы используем Матплотлиб Функция .фигура The first step towards the creation of a Matplotlib plot is the definition of a plotting window, i.e. the window that will be displayed after running the code and that will contain all the subsequently defined plots. To do this, we use the matplotlib function .figure() and we assign its value to the variable “ fig

fig = plt.figure()

После создания окна построения мы должны определить подломы; Это можно сделать, используя функцию .subplots. () , применяется к ранее определенному рисунку (то есть переменной » Рис “). Если мы не передаем никакого входного параметра, эта функция будет генерировать один Subplot, в то время как мы хотим, чтобы это отобразить несколько подборков, мы должны указать количество строк и столбцов, в которых мы хотим разделить окно построения. Эти входные параметры называются « Nrows » и « Ncols »; Однако мы можем напрямую решить их, просто набрав два соответствующих числа.

Другие полезные параметры – Sharex. Other useful parameters are sharex and sharey , if we put them equal to True, the generated subplots will share the x and/or the y axes. For this example, we define four subplots, displayed along two rows and two columns; and we assign them to the variable " ax ". The following code line describes the procedure. We also use the function .subplots_adjust() for changing the separation between the four subplots, specifically by setting to 0.5 the value of the parameters hspace and wspace

ax = fig.subplots(2, 2)
fig.subplots_adjust(hspace=0.5, wspace=0.5)

Полученный результат отображается на рисунке 1, что показывает четыре подложки, инициализированные в сетке 2 × 2 внутри окна MATPLOTLIB.

Рисунок 1: Инициализация четырех подломов, распределенных в сетке 2 × 2 в пределах Матплотлиб окно.

Изменение свойств отдельных подломов

Теперь, когда мы создали наши четыре подложки, мы продолжаем и измените некоторые свойства отдельных участков. Это действительно легкая задача; Действительно, благодаря стратегии, которую мы приняли для определения подломов, теперь переменная « AX » представляет собой массив 2 × 2 и, следовательно, позволяет получить доступ к каждому из его элементов (каждый Subplot) простым Индексирование Отказ

В нашем случае Subplot на верхнем левом углу это элемент In our case, the subplot on the upper left corner is the element [0, 0] , the one in the upper right corner the [0, 1] , on the bottom left we have the [1, 0] and on the bottom right the [1, 1] . We can now try to add a title to the subplot in the bottom left corner, this can be done by applying the method .set_title() to the element ax[1, 0]

ax[1, 0].set_title('Plot n° 3')

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

Рисунок 2: Применяя метод .set_title. () к [1, 0] элемент топор Массив, мы добавили название исключительно на подпуму в нижнем левом углу.

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

  • . Грид () Для включения сетки на вашем участке и для изменения его свойств (например, цвет и линейный вид)
  • .set_xlabel.set_xlabel or set_ylabel() for setting the title of the x and y axes, respectively .set_xlabel
  • or set_ylabel()

Автоматически устанавливает свойства всех подломов

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

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

Перед входом в для петель, Определим переменные « Rows » и « Cols », что указывает на общее количество строк и столбцов, которое в окне разделено; Затем они будут использоваться в качестве значения побега для остановки итераций внутри петель. Мы также определяем индекс « n », который будет использоваться для присвоения номера каждому названию сюжета.

rows, cols = 2, 2
n = 1
for i in range(rows):
    for j in range(cols):
        ax[i, j].grid(color='w', linewidth=1)
        ax[i, j].set_ylabel('Y axis')
        ax[i, j].set_xlabel('X axis')
        ax[i, j].set_facecolor("grey")
        ax[i, j].set_title('Plot n° ' + str(n))
        n += 1
plt.show()

Как вы можете видеть из строки кода, каждое из подломов будет иметь белую сетку, две этикетки для оси Y и X соответственно, серый фон и заголовок «Участок N ° (номер участка)», где Количество участка продиктовано значением индекса «N». Конечный результат отображается на рисунке 3.

Рисунок 3: Использование двух вложенных для петлей Мы смогли автоматически изменить свойства всех четырех подломов, без необходимости повторения всех шагов для каждого из них.

Полный код

Вот полный код из этого руководства:

import matplotlib.pyplot as plt

fig = plt.figure()
rows, cols = 2, 2
ax = fig.subplots(nrows=rows, ncols=cols)
fig.subplots_adjust(hspace=0.5, wspace=0.5)
# adding a title to an individual subplot
ax[1, 0].set_title('Plot n° 3')
# automatically set the properties for all the subplots
n = 1
for i in range(rows):
    for j in range(cols):
        ax[i, j].grid(color='w', linewidth=1)
        ax[i, j].set_ylabel('Y axis')
        ax[i, j].set_xlabel('X axis')
        ax[i, j].set_facecolor('grey')
        ax[i, j].set_title('Plot n° ' + str(n))
        n += 1
plt.show()

Выводы

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