Підграфіки
Функція subplots()
з модуля pyplot
призначена саме для цього. Раніше вона використовувалася для створення полотна у першому розділі, а тепер буде розглянута детальніше.
Рядки та стовпці
Найважливішими аргументами цієї функції є nrows
та ncolumns
, які визначають кількість рядків і стовпців у сітці підграфіків. За замовчуванням обидва дорівнюють 1, тому створюється лише один графік (Axes
).
Функція subplots()
повертає об'єкт Figure
та або один об'єкт Axes
, або масив об'єктів Axes
залежно від розміру сітки.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Було створено ґратку підграфіків розміром 2 на 2.
Оскільки існує кілька підграфіків, subplots
повертає масив об'єктів Axes
, який зазвичай зберігається у змінній з назвою axs
(однина ax
використовується для одного графіка).
У цьому випадку axs
є двовимірним масивом, тому для доступу до конкретного підграфіка потрібно вказати як індекс рядка, так і індекс стовпця.
12345678910111213141516import 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()
У першому рядку (рядок 0) розміщено два лінійних графіки, а в другому рядку (рядок 1) — дві діаграми розсіювання.
Оскільки кожен графік розташований на окремому підграфіку, не можна використовувати plt.plot()
або plt.scatter()
безпосередньо. Необхідно викликати відповідний метод для кожного окремого об'єкта Axes
.
Перетворення у 1D-масив
Також можливо використати метод .ravel()
для перетворення двовимірного масиву Axes
у одномірний суцільний (flattened) масив:
12345678910111213141516171819import 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()
За допомогою масиву 2x2, axs.ravel()
перетворює його на одномірний масив, що містить чотири елементи.
Спільна вісь
Функція subplots()
також має параметри sharex
та sharey
. Вони визначають, чи будуть x або y осі спільними для всіх підграфіків. Обидва параметри за замовчуванням встановлені у значення False
.
12345678910111213141516171819import 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()
Встановлення параметра sharex=True
забезпечує спільну вісь x для всіх підграфіків, що є корисним у цьому випадку, оскільки всі підграфіки використовують однакові значення по осі x.
Також можна встановити sharex
або sharey
у значення 'row'
, щоб об'єднати вісь у межах кожного рядка підграфіків, або 'col'
— для об'єднання в межах кожного стовпця підграфіків.
Як завжди, не соромтеся досліджувати більше у
subplots()
documentation якщо бажаєте.
Swipe to start coding
- Використати відповідну функцію для створення сітки підграфіків.
- Сітка повинна містити 3 рядки та 1 стовпець (вказати перші два параметри).
- Вказати останній іменований аргумент, щоб вісь x була спільною для всіх підграфіків.
- Зберегти результат функції створення підграфіків у змінних
fig
таaxs
(зліва направо). - Розмістити перший лінійний графік для
data_linear
у першому рядку (рядок0
) сітки підграфіків. - Розмістити другий лінійний графік для
data_squared
у другому рядку (рядок1
) сітки підграфіків. - Розмістити третій лінійний графік для
data_exp
у третьому рядку (рядок2
) сітки підграфіків.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.85
Підграфіки
Свайпніть щоб показати меню
Функція subplots()
з модуля pyplot
призначена саме для цього. Раніше вона використовувалася для створення полотна у першому розділі, а тепер буде розглянута детальніше.
Рядки та стовпці
Найважливішими аргументами цієї функції є nrows
та ncolumns
, які визначають кількість рядків і стовпців у сітці підграфіків. За замовчуванням обидва дорівнюють 1, тому створюється лише один графік (Axes
).
Функція subplots()
повертає об'єкт Figure
та або один об'єкт Axes
, або масив об'єктів Axes
залежно від розміру сітки.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Було створено ґратку підграфіків розміром 2 на 2.
Оскільки існує кілька підграфіків, subplots
повертає масив об'єктів Axes
, який зазвичай зберігається у змінній з назвою axs
(однина ax
використовується для одного графіка).
У цьому випадку axs
є двовимірним масивом, тому для доступу до конкретного підграфіка потрібно вказати як індекс рядка, так і індекс стовпця.
12345678910111213141516import 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()
У першому рядку (рядок 0) розміщено два лінійних графіки, а в другому рядку (рядок 1) — дві діаграми розсіювання.
Оскільки кожен графік розташований на окремому підграфіку, не можна використовувати plt.plot()
або plt.scatter()
безпосередньо. Необхідно викликати відповідний метод для кожного окремого об'єкта Axes
.
Перетворення у 1D-масив
Також можливо використати метод .ravel()
для перетворення двовимірного масиву Axes
у одномірний суцільний (flattened) масив:
12345678910111213141516171819import 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()
За допомогою масиву 2x2, axs.ravel()
перетворює його на одномірний масив, що містить чотири елементи.
Спільна вісь
Функція subplots()
також має параметри sharex
та sharey
. Вони визначають, чи будуть x або y осі спільними для всіх підграфіків. Обидва параметри за замовчуванням встановлені у значення False
.
12345678910111213141516171819import 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()
Встановлення параметра sharex=True
забезпечує спільну вісь x для всіх підграфіків, що є корисним у цьому випадку, оскільки всі підграфіки використовують однакові значення по осі x.
Також можна встановити sharex
або sharey
у значення 'row'
, щоб об'єднати вісь у межах кожного рядка підграфіків, або 'col'
— для об'єднання в межах кожного стовпця підграфіків.
Як завжди, не соромтеся досліджувати більше у
subplots()
documentation якщо бажаєте.
Swipe to start coding
- Використати відповідну функцію для створення сітки підграфіків.
- Сітка повинна містити 3 рядки та 1 стовпець (вказати перші два параметри).
- Вказати останній іменований аргумент, щоб вісь x була спільною для всіх підграфіків.
- Зберегти результат функції створення підграфіків у змінних
fig
таaxs
(зліва направо). - Розмістити перший лінійний графік для
data_linear
у першому рядку (рядок0
) сітки підграфіків. - Розмістити другий лінійний графік для
data_squared
у другому рядку (рядок1
) сітки підграфіків. - Розмістити третій лінійний графік для
data_exp
у третьому рядку (рядок2
) сітки підграфіків.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 3.85single