一、plt.contourf簡介
plt.contourf是matplotlib中一個非常重要的函數,用於繪製等高線圖,其中f表示filled,繪製的顏色由函數值所表示的「高度」決定,通常用於表示2D函數的等值線分布。
二、plt.contourf的參數
plt.contourf函數具有多個參數,其中x,y分別表示x軸和y軸上的坐標數組;Z表示在這些坐標上對應的函數值;levels代表要繪製的等值線的高度;cmap是顏色選擇;alpha是透明度;linewidths表示等值線的寬度等等。實際上,plt.contourf函數可以繪製出更加高級的等高線圖,但本文著重介紹最基礎的內容。
# 簡單使用示例 plt.contourf(x, y, z) # 繪製等高線圖,只傳入x、y和z三個參數 plt.colorbar() # 添加顏色條
本例中的x、y、z數組均為二維數組,其形狀分別為N行M列。使用時需要保證x和y的形狀和z相同。
三、plt.contourf的應用場景
1. 表示2D函數的等值線分布
對於一個二維函數f(x, y),我們可以通過plt.contourf函數將其等值線畫出來,其中x和y是變數,z=f(x,y)。
import numpy as np import matplotlib.pyplot as plt # 定義函數 def f(x, y): return np.sin(np.sqrt(x ** 2 + y ** 2)) # 生成網格數據 x = np.linspace(-10, 10, 500) # x坐標 y = np.linspace(-10, 10, 500) # y坐標 X, Y = np.meshgrid(x, y) # 生成二維網格數據 z = f(X, Y) # 計算得到z值 # 繪製圖像 plt.contourf(X, Y, z, cmap='cool') # 繪製等值面 plt.colorbar() # 添加顏色條 plt.show()
運行結果如下圖所示,等值線的顏色隨著函數值的變化而變換,越靠近最高點顏色越亮。
2. 地圖繪製
在地理信息學中,人們常常需要繪製各種特徵地圖,比如地形高度圖、氣象預報圖等。利用plt.contourf函數,我們可以非常輕鬆地實現這一目標。
import numpy as np import matplotlib.pyplot as plt # 生成網格數據 x = np.linspace(0, 10, 50) y = np.linspace(0, 10, 50) X, Y = np.meshgrid(x, y) # 定義一個簡單的高度分布函數,這裡是正弦函數 z = 2 * np.sin(X) + 3 * np.sin(Y) # 繪製等高線圖 plt.contourf(X, Y, z, cmap='cool') plt.colorbar() # 添加地圖信息 plt.title('等高線地圖') plt.xlabel('經度') plt.ylabel('緯度') plt.grid(True) plt.show()
運行結果如下圖所示,色彩分布從深紅到淺綠,更好地顯示了地勢高低差異。使用等高線還可以更加準確地描述地勢,從而更好地預測地圖上海拔高度的走勢。
3. 三維數據的可視化
plt.contourf函數還可以繪製三維數據的可視化效果。在這裡,我們可以設置z值作為顏色來表示數據的變化醫,並用不同的顏色填充不同的元素。
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 生成網格數據 x = np.linspace(-10, 10, 50) y = np.linspace(-10, 10, 50) X, Y = np.meshgrid(x, y) # 定義一個三維數據(X, Y, Z),這裡使用正弦函數 Z = np.sin(np.sqrt(X ** 2 + Y ** 2)) # 繪製三維圖像 fig = plt.figure() ax = fig.gca(projection='3d') # 創建3D坐標系 surf = ax.plot_surface(X, Y, Z, cmap='cool') # 繪製表面 plt.colorbar(surf) plt.show()
運行結果如下圖所示,顏色鮮明,營造出充滿科技感的立體畫面,使數據的呈現更加形象生動了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293132.html