等高線繪制常用函數
plt.contourf()
該函數用於定義等高線圖兩條線之間的填充物。
應用方法如下:
# 調用等高線的填充物 plt.contourf(X,Y,f_x_y,8,alpha = 0.5,cmap = plt.cm.hot)
其中,X,Y分別代表網格化后的x,y坐標;f_x_y對於等高線而言,其代表了高度;8代表等高線要分為10塊(輸入0時等高線分為2塊);alpha代表每個填充物的透明度;cmap代表填充的色調,這里選擇hot熱烈的色調,其可選擇的內容可以參考https://matplotlib.org/examples/color/colormaps_reference.html。
其調用結果為:

plt.contour()
該函數用於定義等高線中的線。
應用方法如下:
# 定義等高線的線的顏色,寬度 C = plt.contour(X,Y,f_x_y,8,colors='black',linewidth = 5)
其中,X,Y分別代表網格化后的x,y坐標;f_x_y對於等高線而言,其代表了高度;8代表等高線要分為10塊(輸入0時等高線分為2塊);colors代表線的顏色;linewidth代表線的寬度。
plt.clabel()
該函數用於定義等高線中的標簽。
應用方法如下:
# clabel用於定義等高線的標簽 plt.clabel(C,inline = True,fontsize = 10)
其中,C代表需要添加標簽的線;inline代表標簽添加的位置,當其為True時是上面那副等高線圖的效果,當其為False時,線會穿過數字;fontsize代表標簽大小。下圖為inline = False時的效果。
下圖為inline = True時的效果:
應用示例
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1,1,50) y = np.linspace(-1,1,50) # x、y的網格化 X,Y = np.meshgrid(x,y) # 計算f(x,y)的值,對於等高線而言,其代表了高度 f_x_y = -(X**4+Y**3-2*X)*np.sin(X) # 調用等高線的填充物 plt.contourf(X,Y,f_x_y,8,alpha = 0.5,cmap = plt.cm.hot) # 定義等高線的線的顏色,寬度 C = plt.contour(X,Y,f_x_y,8,colors='black',linewidth = 5) # clabel用於定義等高線的標簽 plt.clabel(C,inline = True,fontsize = 10) plt.xticks(()) plt.yticks(()) plt.show()
