首頁  >  文章  >  後端開發  >  使用Python Matplotlib繪製等高線圖

使用Python Matplotlib繪製等高線圖

WBOY
WBOY轉載
2023-08-30 19:05:011609瀏覽

Matplotlib 是 Python 中的免費開源繪圖函式庫。它用於透過使用 python 腳本創建二維圖形和繪圖。要使用 matplotlib 功能,我們需要先安裝該程式庫。

使用 pip 安裝

透過在命令提示字元中執行以下命令,我們可以輕鬆地從 PyPi 安裝 Matplotlib 的最新穩定套件。

pip install Matplotlib

您可以使用以下命令透過conda安裝Matplotlib -

conda install -c conda-forge matplotlib

等高線圖用於透過繪製常數 z 切片(稱為等高線)來視覺化二維表面中的三維資料。

它是在輪廓函數 (Z) 的幫助下繪製的,該函數是兩個輸入 X 和 Y(X 軸和 Y 軸座標)的函數。

Z = fun(x,y)

Matplotlib 提供了兩個函數 plt.contourplt.contourf 來繪製等高線圖。

contour() 方法

matplotlib.pyplot。輪廓()方法用於繪製輪廓線。它傳回 QuadContourSet。以下是函數的語法 -

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

參數

  • [X,Y]:可選參數,表示Z中值的座標。

  • Z:繪製輪廓的高度值。

  • levels:用於確定輪廓線/區域的數量和位置。

範例

讓我們舉個例子,使用 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()

輸出

使用Python Matplotlib绘制等高线图

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

輸出

使用Python Matplotlib绘制等高线图

#z 函數是 x 和 y 座標值的平方根總和。使用 numpy.sqrt() 函數實作。

contourf() 函數

matplotlib.pyplot提供了一個方法contourf()來繪製填滿輪廓。以下是函數的語法 -

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

哪裡,

  • [X,Y]:可選參數,表示Z中值的座標。

  • Z:繪製輪廓的高度值。

  • levels:用於確定輪廓線/區域的數量和位置。

範例

讓我們再舉一個例子,使用contourf()方法繪製等高線圖。

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

輸出

使用Python Matplotlib绘制等高线图

#使用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()

輸出

使用Python Matplotlib绘制等高线图

#在上述所有範例中,我們都使用 numpy.meshgrid() 函數來產生 X 和 Y 座標的陣列。

以上是使用Python Matplotlib繪製等高線圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除