Поиск по сайту:

Постройте несколько графиков в Matplotlib


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

Программа Python для построения нескольких графиков в Matplotlib

Прежде чем перейти непосредственно к программе, давайте познакомимся с методом subplots() библиотеки Matplotlib.

метод subplots()

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

Синтаксис

subplots(numOfrows, numOfcols)

Здесь 'numOfrows' и 'numOfcols' определяют количество строк и столбцов сетки соответственно.

Однако мы также можем добавить еще несколько дополнительных атрибутов по мере необходимости.

Пример 1

В следующем примере мы построим два подграфика функций синуса и косинуса.

Подход

  • Сначала мы импортируем matplotlib и numpy. Matplotlib будет использоваться для визуального представления данных, сгенерированных numpy.

  • Создайте массив из 100 равномерно распределенных значений от 0 до 10, используя встроенный метод linspace() в NumPy. Затем вычислите значения синуса и косинуса для каждого элемента массива x и сохраните их в y1 и y2 соответственно.

  • Теперь используйте метод subplots(), чтобы создать два подграфика, расположенных вертикально. Этот метод вернет объект фигуры с именем «fig» и кортеж осей подграфика «ax1» и «ax2». Здесь «figsize» задает размер фигуры.

  • Постройте значения x против значений y1 на первом подграфике ax1.

  • Аналогичным образом постройте график значений x и значений y2 на втором подграфике ax2.

  • Используйте метод «tight_layout()», чтобы отрегулировать расстояние между подграфиками, чтобы предотвратить перекрытие.

  • В конце выведите графики и выйдите.

import matplotlib.pyplot as plt
import numpy as np
# generating some random data for plotting
val = np.linspace(0, 10, 100)
pl1 = np.sin(val)
pl2 = np.cos(val)
# Creating subplots
fig, (axs1, axs2) = plt.subplots(2, 1, figsize = (6, 4))
# Plotting of the first subplot
axs1.plot(val, pl1, 'r', label = 'Sin')
axs1.set_xlabel('Axis-X')
axs1.set_ylabel('Axis-Y')
axs1.legend()
# Plotting of the second subplot
axs2.plot(val, pl2, 'b', label = 'Cos')
axs2.set_xlabel('Axis-X')
axs2.set_ylabel('Axis-Y')
axs2.legend()
# for adjusting the space between subplots
plt.tight_layout()
# to display the plots
plt.show()

Выход

Пример 2

В следующем примере мы изменим код предыдущего примера, чтобы добавить еще один график функций tan.

import matplotlib.pyplot as plt
import numpy as np
# generating some random data for plotting
val = np.linspace(0, 10, 100)
pl1 = np.sin(val)
pl2 = np.cos(val)
pl3 = np.tan(val)
# Creating the subplots using above data
fig, axs = plt.subplots(2, 2, figsize = (8, 6))
# Plotting of the first subplot
axs[0, 0].plot(val, pl1, 'r', label = 'Sin')
axs[0, 0].set_xlabel('Axis-X')
axs[0, 0].set_ylabel('Axis-Y')
axs[0, 0].legend()
# To plot on the second subplot
axs[0, 1].plot(val, pl2, 'b', label = 'Cos')
axs[0, 1].set_xlabel('Axis-X')
axs[0, 1].set_ylabel('Axis-Y')
axs[0, 1].legend()
# Plotting of the third subplot
axs[1, 0].plot(val, pl3, 'g', label = 'Tan')
axs[1, 0].set_xlabel('Axis-X')
axs[1, 0].set_ylabel('Axis-Y')
axs[1, 0].legend()
# To remove the empty subplot
fig.delaxes(axs[1, 1])
# for adjusting the space between subplots
plt.tight_layout()
# Displaying all plots
plt.show()

Выход

Заключение

Мы начали эту статью с представления Matplotlib и его встроенного метода subplots(). В следующем разделе мы подробно объяснили этот метод. Кроме того, мы обсудили два примера программы, демонстрирующие использование метода subplots() при построении нескольких графиков.

Статьи по данной тематике: