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

Контурный график с использованием Python Matplotlib


Matplotlib — бесплатная библиотека построения графиков с открытым исходным кодом на Python. Он используется для создания двумерных графиков и графиков с использованием скриптов Python. Чтобы использовать функции matplotlib, нам нужно сначала установить библиотеку.

Установить с помощью pip

Выполнив приведенную ниже команду в командной строке, мы можем легко установить последний стабильный пакет для Matplotlib из PyPi.

pip install Matplotlib

Вы можете установить Matplotlib через conda, используя следующую команду:

conda install -c conda-forge matplotlib

Контурный график используется для визуализации трехмерных данных на двумерной поверхности путем построения срезов с постоянным z, называемых контурами.

Он рисуется с помощью контурной функции (Z), которая является функцией двух входных данных X и Y (координаты оси X и оси Y).

Z = fun(x,y)

Matplotlib предоставляет две функции plt.contour и plt.contourf для построения контурных графиков.

Метод контур()

Matplotlib.pyplot. Метод контура() используется для рисования контурных линий. Он возвращает QuadContourSet. Ниже приведен синтаксис этой функции:

contour([X, Y,] Z, [levels], **kwargs)

Параметры

  • [X, Y]: необязательный параметр, он представляет координаты значений по Z.

  • Z: значения высоты, по которым рисуется контур.

  • уровни: используется для определения количества и положения контурных линий/областей.

Пример

Давайте возьмем пример и построим контурные линии, используя числовые тригонометрические функции.

import numpy as np
import matplotlib.pyplot as plt

def f(x, y):
   return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

xlist = np.linspace(-4.0, 4.0, 800)
ylist = np.linspace(-4.0, 4.0, 800)

# A mesh is created with the given co-ordinates by this numpy function
X, Y = np.meshgrid(xlist, ylist)
Z = f(X,Y)

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) 

cp = ax.contour(X, Y, Z)
fig.colorbar(cp) # Add a colorbar to a plot
ax.set_title('Contour Plot')

ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()

Выход

Функция f(x,y) определяется с использованием numpy тригонометрических функций.

Пример

Давайте возьмем другой пример и нарисуем контурные линии.

import numpy as np
import matplotlib.pyplot as plt

def f(x, y):
    return np.sqrt(X**2 + Y**2)

xlist = np.linspace(-10, 10, 400)
ylist = np.linspace(-10, 10, 400)

# create a mesh 
X, Y = np.meshgrid(xlist, ylist)

Z = f(X, Y)

fig = plt.figure(figsize=(6,5))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) 

cp = ax.contour(X, Y, Z)
ax.set_title('Contour Plot')
ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()

Выход

Z-функция представляет собой сумму квадратного корня значений координат x и y. Реализовано с помощью функции numpy.sqrt().

Функция контурф()

В matplotlib.pyplot предусмотрен метод контура() для рисования заполненного контура. Ниже приведен синтаксис этой функции:

contourf([X, Y,] Z, [levels], **kwargs)

Где,

  • [X, Y]: необязательный параметр, он представляет координаты значений по Z.

  • Z: значения высоты, по которым рисуется контур.

  • уровни: используется для определения количества и положения контурных линий/областей.

Пример

Давайте возьмем другой пример и нарисуем контурный график, используя метод контурф().

import numpy as np
import matplotlib.pyplot as plt

xlist = np.linspace(-8, 8, 800)
ylist = np.linspace(-8, 8, 800)

X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)

fig = plt.figure(figsize=(6,5))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) 

cp = ax.contourf(X, Y, Z)
fig.colorbar(cp) # Add a colorbar to a plot
ax.set_title('Filled Contours Plot')
#ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()

Выход

Используя метод fig.colorbar(), мы добавили цвета на график. Функция z представляет собой сумму квадратного корня значений координат x и y.

Пример

В этом примере мы построим график полярного контура, используя метод matplotlib.plt.contourf().

import numpy as np
import matplotlib.pyplot as plt

a = np.radians(np.linspace(0, 360, 20))
b = np.arange(0, 70, 10)
 
Y, X = np.meshgrid(b, a)
values = np.random.random((a.size, b.size))
 
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
ax.set_title('Filled Contours Plot')
ax.contourf(X, Y, values)
 
plt.show()

Выход

Во всех приведенных выше примерах мы использовали функцию numpy.meshgrid() для создания массивов для координат X и Y.

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