国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

用matplotlib畫等高線圖詳解

2020-02-16 11:06:58
字體:
來源:轉載
供稿:網友

等高線圖是在地理課中講述山峰山谷時繪制的圖形,在機器學習中也會被用在繪制梯度下降算法的圖形中。

因為等高線的圖有三個信息:x,y以及x,y所對應的高度值。

這個高度值的計算我們用一個函數來表述:

 計算x,y坐標對應的高度值def f(x, y): return (1-x/2+x**5+y**3) * np.exp(-x**2-y**2)

這個函數看起來挺復雜的,但我們這里只是為了能夠獲得一個高度值,因此其中函數代表什么意義不用關心,只要知道輸入一個x,y,輸出一個高度值就可以了。

要畫出等高線,核心函數是plt.contourf(),但在這個函數中輸入的參數是x,y對應的網格數據以及此網格對應的高度值,因此還需要調用np.meshgrid(x,y)把x,y值轉換成網格數據才行,這樣完整的代碼如下:

畫等高線的代碼如下:

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 計算x,y坐標對應的高度值def f(x, y): return (1-x/2+x**5+y**3) * np.exp(-x**2-y**2)# 生成x,y的數據n = 256x = np.linspace(-3, 3, n)y = np.linspace(-3, 3, n)# 把x,y數據生成mesh網格狀的數據,因為等高線的顯示是在網格的基礎上添加上高度值X, Y = np.meshgrid(x, y)# 填充等高線plt.contourf(X, Y, f(X, Y))# 顯示圖表plt.show()

上述代碼顯示的圖形為:

這顏色有點太冷了,我們想顯示熱力圖,那只要在plt.contourf()函數中添加屬性cmap=plt.cm.hot就能顯示熱力圖,其中cmap代表為color map,我們把color map映射成hot(熱力圖),此處關鍵代碼為:

# 填充等高線plt.contourf(X, Y, f(X, Y), cmap=plt.cm.hot)

顯示的圖為:

是否顯示得挺熱的。:)

上面是用plt.contourf()填充了等高線,但還有一種方式是可以直接顯示等高線,而不是填充的方式,例如:

C = plt.contour(X, Y, f(X, Y), 20)

這里20代表的是顯示等高線的密集程度,數值越大,畫的等高線數就越多。

這樣顯示的圖形為:

當然,如果我們不調用前面的plt.contourf()函數,則就會直接顯示等高線。

最后我們想在等高線中添加上標注值:

plt.clabel(C, inline=True, fontsize=12)

顯示的圖為:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北流市| 永宁县| 博爱县| 河南省| 大宁县| 永丰县| 鄢陵县| 咸宁市| 邓州市| 高要市| 宜良县| 大姚县| 龙州县| 恩平市| 铜陵市| 教育| 彭山县| 中牟县| 楚雄市| 高雄市| 泾源县| 杭锦后旗| 高台县| 大洼县| 马鞍山市| 独山县| 西宁市| 弥勒县| 松江区| 象山县| 泰顺县| 太仆寺旗| 秦安县| 蒙阴县| 珲春市| 女性| 二连浩特市| 那坡县| 弋阳县| 大理市| 同心县|