国产探花免费观看_亚洲丰满少妇自慰呻吟_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)

顯示的圖為:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江源县| 巫溪县| 灵寿县| 浙江省| 汾西县| 禄丰县| 濮阳市| 建宁县| 甘谷县| 沭阳县| 泗洪县| 义乌市| 招远市| 武邑县| 苍南县| 宝丰县| 松滋市| 临沭县| 南召县| 长汀县| 彩票| 乌什县| 格尔木市| 湖北省| 平南县| 新闻| 汽车| 红原县| 巴里| 丹东市| 石嘴山市| 大港区| 渑池县| 拜泉县| 建阳市| 浦东新区| 正镶白旗| 历史| 临邑县| 华坪县| 丰宁|