contour:輪廓,等高線
1.為等高線上注明等高線的含義:
cs = plt.contour(x, y, z) plt.clabel(cs, inline=True, fontsize=10)#inline=True,表示高度寫在等高線上
2.plt.contourf 與 plt.contour 區別:
- f:filled,也即對等高線間的填充區域進行填充(使用不同的顏色)
- contourf:將不會再繪制等高線(顯然不同的顏色分界就表示等高線本身)
3.增加 colorbar
cb = plt.colorbar()
cb.set_label('meters')
默認 colorbar 是豎直放置,通過 orientation 關鍵字參數,可將其設置為水平放置;
cb = plt.colorbar(orientation='horizontal')
舉例:
等高線是三維圖像在二維空間的投影
(1)首先准備三維函數及待投影平面的網格坐標
![]()
def f(x, y, w=5, sigma=2):
return np.sin(w*x)**2 * np.sin(w*y)**2 * np.exp((x+y)/sigma)
n = 256
x = np.linspace(0, 3, n)
y = np.linspace(0, 3, n)
X, Y = np.meshgrid(x, y)
(2)繪制等高線
C = plt.contour(X, Y, f(X, Y), 8, colors='black') # 8代表等高線的密集程度,這里被分為10個部分。如果是0,則圖像被一分為二。 # 可以將其設置為 20觀察變化; # 等高線之間的顏色填充,可選 plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap='gray_r')
(3)添加高度與數字
ptl.clabel(C, inline=True, fontsize=10) # inline=True,表示高度寫在等高線上 # 關閉坐標軸
效果如下圖所示:

參考文獻:
