Підграфіки
Функція 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 у одновимірний суцільний сплющений масив:
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() документації, якщо бажаєте.
Swipe to start coding
- Використайте відповідну функцію для створення сітки підграфіків.
- Сітка повинна містити 3 рядки та 1 стовпець (вкажіть перші два параметри).
- Вкажіть крайній правий іменований аргумент, щоб вісь x була спільною для всіх підграфіків.
- Збережіть результат функції створення підграфіків у змінних
figтаaxs(зліва направо). - Розмістіть перший лінійний графік для
data_linearу першому рядку (рядок0) сітки підграфіків. - Розмістіть другий лінійний графік для
data_squaredу другому рядку (рядок1) сітки підграфіків. - Розмістіть третій лінійний графік для
data_expу третьому рядку (рядок2) сітки підграфіків.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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?
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 у одновимірний суцільний сплющений масив:
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() документації, якщо бажаєте.
Swipe to start coding
- Використайте відповідну функцію для створення сітки підграфіків.
- Сітка повинна містити 3 рядки та 1 стовпець (вкажіть перші два параметри).
- Вкажіть крайній правий іменований аргумент, щоб вісь x була спільною для всіх підграфіків.
- Збережіть результат функції створення підграфіків у змінних
figтаaxs(зліва направо). - Розмістіть перший лінійний графік для
data_linearу першому рядку (рядок0) сітки підграфіків. - Розмістіть другий лінійний графік для
data_squaredу другому рядку (рядок1) сітки підграфіків. - Розмістіть третій лінійний графік для
data_expу третьому рядку (рядок2) сітки підграфіків.
Рішення
Дякуємо за ваш відгук!
single