基于python,Matplotlib繪制函數(shù)的等高線與三維圖像
本篇文章記錄一下函數(shù)的等高線及其三維圖像的可視化方法。
本例繪制的函數(shù)為:
1. 網(wǎng)格點(diǎn)
在繪制曲線之前,先了解一下網(wǎng)格點(diǎn)的繪制。比如繪制一個(gè)3x3的網(wǎng)格,那么就需要9個(gè)坐標(biāo)點(diǎn):
(0,2)-----(1,2)-----(2,2)
(0,1)-----(1,1)-----(2,1)
(0,0)-----(1,0)-----(2,0)
將其x軸和y軸坐標(biāo)分開表示:
# x軸: [[0, 1, 2], [0, 1, 2],? [0, 1, 2]] # y軸: [[0, 0, 0], [1, 1, 1],? [2, 2, 2]]
在numpy中可以使用np.meshgrid()來生成網(wǎng)格點(diǎn):
import numpy as np import matplotlib.pyplot as plt # 10x10 x = np.linspace(-1.5, 1.5, num=10) y = np.linspace(-1.5, 1.5, num=10) # generate grid X, Y = np.meshgrid(x, y) plt.plot(X, Y, marker='.', linestyle='') plt.grid(True) plt.show()
2. 等高線
繪制等高線需要的數(shù)據(jù)有點(diǎn)的坐標(biāo)位置(x, y)以及坐標(biāo)的高度z,高度z就是將坐標(biāo)點(diǎn)(x, y)帶入函數(shù)f ( x , y ) f(x, y)f(x,y)中計(jì)算得到的,在matplotlib
中可以使用plt.contour()來繪制:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-1.5, 1.5, num=100) y = np.linspace(-1.5, 1.5, num=100) X, Y = np.meshgrid(x, y) f = X * np.exp(-X**2 - Y**2) fig = plt.figure() plt.xlim(-1.5, 1.5) plt.ylim(-1.5, 1.5) # draw ax = plt.contour(X, Y, f, levels=10, cmap=plt.cm.cool) # add label plt.clabel(ax, inline=True) # plt.savefig('img1.png') plt.show()
# add color plt.contourf(X, Y, f, levels=10, cmap=plt.cm.cool) # plt.colorbar() # plt.savefig('img1.png') plt.show()
更多的api參數(shù)請參考官方文檔。
3. 三維圖像
函數(shù)的三維圖像的繪制需要的數(shù)據(jù)與等高線一樣,即坐標(biāo)位置(x, y)以及坐標(biāo)的高度z,在matplotlib中可以使用mpl_toolkits.mplot3d來繪制:
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = np.linspace(-1.5, 1.5, num=100) y = np.linspace(-1.5, 1.5, num=100) X, Y = np.meshgrid(x, y) f = X * np.exp(-X**2 - Y**2) fig = plt.figure() ax = Axes3D(fig) plt.xlim(-1.5, 1.5) plt.ylim(-1.5, 1.5) ax.plot_surface(X, Y, f, cmap=plt.cm.cool) # plt.savefig('img1.png') plt.show()
到此這篇關(guān)于基于python,Matplotlib繪制函數(shù)的等高線與三維圖像的文章就介紹到這了,更多相關(guān)Matplotlib繪制函數(shù)的等高線與三維圖像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
有關(guān)mpl_toolkits.mplot3d的使用可以參考官方文檔;
更多的顏色搭配可參考matplotlib的colormap官方手冊。
相關(guān)文章
Python使用MySQL8.2讀寫分離實(shí)現(xiàn)示例詳解
在這篇文章中,我們將了解如何將?MySQL?8.2?的讀寫分離功能與?MySQL-Connector/Python?一起使用的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11python?共現(xiàn)矩陣的實(shí)現(xiàn)代碼
這篇文章主要介紹了python?共現(xiàn)矩陣的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07xadmin使用formfield_for_dbfield函數(shù)過濾下拉表單實(shí)例
這篇文章主要介紹了xadmin使用formfield_for_dbfield函數(shù)過濾下拉表單實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python爬蟲實(shí)現(xiàn)HTTP網(wǎng)絡(luò)請求多種實(shí)現(xiàn)方式
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)HTTP網(wǎng)絡(luò)請求多種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python的Flask路由實(shí)現(xiàn)實(shí)例代碼
這篇文章主要介紹了Python的Flask路由實(shí)現(xiàn)實(shí)例代碼,在啟動(dòng)程序時(shí),python解釋器會(huì)從上到下對代碼進(jìn)行解釋,當(dāng)遇到裝飾器時(shí),會(huì)執(zhí)行,并把函數(shù)對應(yīng)的路由以字典的形式進(jìn)行存儲(chǔ),當(dāng)請求到來時(shí),即可根據(jù)路由查找對應(yīng)要執(zhí)行的函數(shù)方法,需要的朋友可以參考下2023-08-08python使用DebugInfo模塊打印一個(gè)條形堆積圖
今天介紹一個(gè)不使用 matplot,通過 DebugInfo模塊打印條形堆積圖的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-08-08python用socket傳輸圖片的項(xiàng)目實(shí)踐
使用python在網(wǎng)絡(luò)上傳送圖片數(shù)據(jù),需要以byte格式讀取圖片,這樣才可以通過socket傳輸,本文就來介紹了python用socket傳輸圖片的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Python自動(dòng)化爬取天眼查數(shù)據(jù)的實(shí)現(xiàn)
本文將結(jié)合實(shí)例代碼,介紹Python自動(dòng)化爬取天眼查數(shù)據(jù)的實(shí)現(xiàn),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06