Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Lukis plot kontur menggunakan Python Matplotlib

Lukis plot kontur menggunakan Python Matplotlib

WBOY
WBOYke hadapan
2023-08-30 19:05:011563semak imbas

Matplotlib ialah perpustakaan plot sumber terbuka dalam Python. Ia digunakan untuk mencipta grafik dan plot 2D dengan menggunakan skrip python. Untuk menggunakan fungsi matplotlib, kita perlu memasang perpustakaan terlebih dahulu.

Pasang menggunakan pip

Kami boleh memasang pakej stabil terkini Matplotlib daripada PyPi dengan mudah dengan melaksanakan arahan berikut dalam arahan arahan.

pip install Matplotlib

Anda boleh memasang Matplotlib melalui conda menggunakan arahan berikut -

conda install -c conda-forge matplotlib

Plot kontur digunakan untuk memvisualisasikan data tiga dimensi dalam permukaan dua dimensi dengan memplot keping-z tetap, dipanggil kontur.

Ia diplot dengan bantuan fungsi kontur (Z) iaitu fungsi dua input X dan Y (koordinat paksi X dan Y).

Z = fun(x,y)

Matplotlib menyediakan dua fungsi plt.contour dan plt.contourf untuk melukis plot kontur.

kaedah kontur()

matplotlib.pyplot. Kaedah outline() digunakan untuk melukis garis outline. Ia mengembalikan QuadContourSet. Berikut ialah sintaks fungsi -

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

Parameter

  • [X,Y]: Parameter pilihan, menunjukkan koordinat nilai median Z.

  • Z: Nilai ketinggian garis besar yang dilukis.

  • paras: digunakan untuk menentukan bilangan dan lokasi garisan/rantau kontur.

Contoh

Mari kita ambil contoh melukis garisan kontur menggunakan fungsi trigonometri numpy.

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()

Output

使用Python Matplotlib绘制等高线图

Fungsi

f(x,y) ditakrifkan menggunakan fungsi trigonometri numpy.

Contoh

Mari kita ambil contoh lain dan lukis garisan kontur.

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()

Output

使用Python Matplotlib绘制等高线图

Fungsi

z ialah hasil tambah punca kuasa dua nilai koordinat x dan y. Dilaksanakan menggunakan fungsi numpy.sqrt().

fungsi kontur()

matplotlib.pyplot menyediakan kaedah contourf() untuk melukis kontur terisi. Berikut ialah sintaks fungsi -

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

Di mana,

  • [X,Y]: Parameter pilihan, menunjukkan koordinat nilai median Z.

  • Z: Nilai ketinggian garis besar yang dilukis.

  • paras: digunakan untuk menentukan bilangan dan lokasi garisan/rantau kontur.

Contoh

Mari kita ambil contoh lain dan gunakan kaedah contourf() untuk melukis plot kontur.

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()

Output

使用Python Matplotlib绘制等高线图

Menggunakan kaedah fig.colorbar(), kami menambah warna pada plot. Fungsi z ialah hasil tambah punca kuasa dua bagi nilai koordinat x dan y.

Contoh

Dalam contoh ini, kami akan memplot plot kontur kutub menggunakan kaedah 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()

Output

使用Python Matplotlib绘制等高线图

Dalam semua contoh di atas, kami telah menggunakan fungsi numpy.meshgrid() untuk menjana tatasusunan koordinat X dan Y.

Atas ialah kandungan terperinci Lukis plot kontur menggunakan Python Matplotlib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam