Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Підграфіки | Налаштування Графіків
Універсальна Візуалізація з Python

bookПідграфіки

Функція subplots() з модуля pyplot виконує саме цю задачу. Раніше вона використовувалася для створення полотна у першому розділі, а тепер буде розглянута детальніше.

Рядки та стовпці

Найважливішими аргументами цієї функції є nrows та ncolumns, які визначають кількість рядків і стовпців у сітці підграфіків. За замовчуванням обидва параметри дорівнюють 1, тому створюється лише один графік (Axes).

Функція subplots() повертає об'єкт Figure та або один об'єкт Axes, або масив об'єктів Axes залежно від розміру сітки.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Було створено ґратку підграфіків розміром 2 на 2.

Note
Примітка

Оскільки використовується кілька підграфіків, subplots повертає масив об'єктів Axes, який зазвичай зберігається у змінній з назвою axs (однина ax використовується для одного графіка).

У цьому випадку axs є двовимірним масивом, тому для доступу до конкретного підграфіка потрібно вказати як індекс рядка, так і індекс стовпця.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

У першому рядку (рядок 0) розташовано два лінійних графіки, а в другому рядку (рядок 1) — дві діаграми розсіювання.

Оскільки кожен графік розміщується на окремому підграфіку, не можна використовувати plt.plot() або plt.scatter() безпосередньо. Необхідно викликати відповідний метод для кожного окремого об'єкта Axes.

Перетворення у 1D-масив

Також можливо використати метод .ravel() для перетворення двовимірного масиву Axes у одновимірний суцільний сплющений масив:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

За допомогою масиву 2x2, axs.ravel() перетворює його на одномірний масив із чотирьох елементів.

Спільна вісь

Функція subplots() також має параметри sharex та sharey. Вони визначають, чи будуть x або y осі спільними для всіх підграфіків. Обидва параметри за замовчуванням встановлені у значення False.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Встановлення параметра sharex=True забезпечує спільну вісь x для всіх підграфіків, що є корисним у цьому випадку, оскільки всі підграфіки використовують однакові значення по осі x.

Також можна встановити sharex або sharey у значення 'row', щоб об'єднати вісь у межах кожного рядка підграфіків, або 'col' — для об'єднання в межах кожного стовпця підграфіків.

Note
Вивчайте більше

Як завжди, не соромтеся досліджувати більше у subplots() документації, якщо бажаєте.

Завдання

Swipe to start coding

  1. Використайте відповідну функцію для створення сітки підграфіків.
  2. Сітка повинна містити 3 рядки та 1 стовпець (вкажіть перші два параметри).
  3. Вкажіть крайній правий іменований аргумент, щоб вісь x була спільною для всіх підграфіків.
  4. Збережіть результат функції створення підграфіків у змінних fig та axs (зліва направо).
  5. Розмістіть перший лінійний графік для data_linear у першому рядку (рядок 0) сітки підграфіків.
  6. Розмістіть другий лінійний графік для data_squared у другому рядку (рядок 1) сітки підграфіків.
  7. Розмістіть третій лінійний графік для data_exp у третьому рядку (рядок 2) сітки підграфіків.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 6
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain more about how to access individual subplots in a grid?

What happens if I create a grid with more rows and columns?

How do I customize the appearance of each subplot?

close

Awesome!

Completion rate improved to 3.85

bookПідграфіки

Свайпніть щоб показати меню

Функція subplots() з модуля pyplot виконує саме цю задачу. Раніше вона використовувалася для створення полотна у першому розділі, а тепер буде розглянута детальніше.

Рядки та стовпці

Найважливішими аргументами цієї функції є nrows та ncolumns, які визначають кількість рядків і стовпців у сітці підграфіків. За замовчуванням обидва параметри дорівнюють 1, тому створюється лише один графік (Axes).

Функція subplots() повертає об'єкт Figure та або один об'єкт Axes, або масив об'єктів Axes залежно від розміру сітки.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Було створено ґратку підграфіків розміром 2 на 2.

Note
Примітка

Оскільки використовується кілька підграфіків, subplots повертає масив об'єктів Axes, який зазвичай зберігається у змінній з назвою axs (однина ax використовується для одного графіка).

У цьому випадку axs є двовимірним масивом, тому для доступу до конкретного підграфіка потрібно вказати як індекс рядка, так і індекс стовпця.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
copy

У першому рядку (рядок 0) розташовано два лінійних графіки, а в другому рядку (рядок 1) — дві діаграми розсіювання.

Оскільки кожен графік розміщується на окремому підграфіку, не можна використовувати plt.plot() або plt.scatter() безпосередньо. Необхідно викликати відповідний метод для кожного окремого об'єкта Axes.

Перетворення у 1D-масив

Також можливо використати метод .ravel() для перетворення двовимірного масиву Axes у одновимірний суцільний сплющений масив:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

За допомогою масиву 2x2, axs.ravel() перетворює його на одномірний масив із чотирьох елементів.

Спільна вісь

Функція subplots() також має параметри sharex та sharey. Вони визначають, чи будуть x або y осі спільними для всіх підграфіків. Обидва параметри за замовчуванням встановлені у значення False.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
copy

Встановлення параметра sharex=True забезпечує спільну вісь x для всіх підграфіків, що є корисним у цьому випадку, оскільки всі підграфіки використовують однакові значення по осі x.

Також можна встановити sharex або sharey у значення 'row', щоб об'єднати вісь у межах кожного рядка підграфіків, або 'col' — для об'єднання в межах кожного стовпця підграфіків.

Note
Вивчайте більше

Як завжди, не соромтеся досліджувати більше у subplots() документації, якщо бажаєте.

Завдання

Swipe to start coding

  1. Використайте відповідну функцію для створення сітки підграфіків.
  2. Сітка повинна містити 3 рядки та 1 стовпець (вкажіть перші два параметри).
  3. Вкажіть крайній правий іменований аргумент, щоб вісь x була спільною для всіх підграфіків.
  4. Збережіть результат функції створення підграфіків у змінних fig та axs (зліва направо).
  5. Розмістіть перший лінійний графік для data_linear у першому рядку (рядок 0) сітки підграфіків.
  6. Розмістіть другий лінійний графік для data_squared у другому рядку (рядок 1) сітки підграфіків.
  7. Розмістіть третій лінійний графік для data_exp у третьому рядку (рядок 2) сітки підграфіків.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 6
single

single

some-alt