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 у одномірний суцільний (flattened) масив:

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() documentation якщо бажаєте.

Завдання

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
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?

Запитати АІ

expand
ChatGPT

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

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 у одномірний суцільний (flattened) масив:

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() documentation якщо бажаєте.

Завдання

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
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?
some-alt