Контурный график с использованием 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.