欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何用Matplotlib 畫(huà)三維圖的示例代碼

 更新時(shí)間:2020年07月28日 09:49:07   作者:鹽味橙汁  
這篇文章主要介紹了如何用Matplotlib 畫(huà)三維圖的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

用Matplotlib畫(huà)三維圖

最基本的三維圖是由(x, y, z)三維坐標(biāo)點(diǎn)構(gòu)成的線(xiàn)圖與散點(diǎn)圖,可以用ax.plot3D和ax.scatter3D函數(shù)來(lái)創(chuàng)建,默認(rèn)情況下,散點(diǎn)會(huì)自動(dòng)改變透明度,以在平面上呈現(xiàn)出立體感

三維的線(xiàn)圖和散點(diǎn)圖

#繪制三角螺旋線(xiàn)
from mpl_toolkits import mplot3d
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

ax = plt.axes(projection='3d')

#三維線(xiàn)的數(shù)據(jù)
zline = np.linspace(0, 15, 1000)
xline = np.sin(zline)
yline = np.cos(zline)
ax.plot3D(xline, yline, zline, 'gray')

# 三維散點(diǎn)的數(shù)據(jù)
zdata = 15 * np.random.random(100)
xdata = np.sin(zdata) + 0.1 * np.random.randn(100)
ydata = np.cos(zdata) + 0.1 * np.random.randn(100)
ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap='Greens')

三維等高線(xiàn)圖

def f(x, y):
 return np.sin(np.sqrt(x ** 2 + y ** 2))
x = np.linspace(-6,6,30)
y = np.linspace(-6,6,30)
X, Y = np.meshgrid(x, y)
Z = f(X,Y)

fig = plt.figure()
ax = plt.axes(projection='3d')
ax.contour3D(X, Y, Z, 50, cmap='binary')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
#調(diào)整觀(guān)察角度和方位角。這里將俯仰角設(shè)為60度,把方位角調(diào)整為35度
ax.view_init(60, 35)

線(xiàn)框圖和全面圖

全面圖和線(xiàn)框圖相似,只不過(guò)線(xiàn)框圖的每一個(gè)面都是由多邊形構(gòu)成。只要增加唉一個(gè)配色方案來(lái)填充這些多邊形,就可以感受到可視化圖形表面的拓?fù)浣Y(jié)構(gòu)了。

#線(xiàn)框圖
fig =plt.figure()
ax = plt.axes(projection='3d')
ax.plot_wireframe(X, Y, Z, color='c')
ax.set_title('wireframe')

#曲面圖
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridis', edgecolor='none')
ax.set_title('surface')

#使用極坐標(biāo)可以獲得切片的效果
r = np.linspace(0, 6, 20)
theta = np.linspace(-0.9 * np.pi, 0.8 * np.pi, 40)
r, theta = np.meshgrid(r, theta)
X = r * np.sin(theta)
Y = r * np.cos(theta)
Z = f(X, Y)
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridis', edgecolor='none')

曲面三角剖分

在某些應(yīng)用場(chǎng)景下,上述這些要求均勻采樣的網(wǎng)格數(shù)據(jù)顯得太過(guò)嚴(yán)格且不太容易實(shí)現(xiàn)。這時(shí)就可以使用三角剖分部分圖形。

theta = 2 * np.pi * np.random.random(1000)
r = 6 * np.random.random(1000)
x = np.ravel(r * np.sin(theta))
y = np.ravel(r * np.cos(theta))
z = f(x, y)

ax = plt.axes(projection='3d')
ax.scatter(x, y, z, c=z, cmap='viridis', linewidth=0.5)

#上圖還有許多地方需要修補(bǔ),這些工作可以由ax.plot_trisurf函數(shù)幫助我們完成。它首先找到一組所有點(diǎn)都連接起來(lái)的三角形,然后用這些三角形創(chuàng)建曲面
ax = plt.axes(projection='3d')
ax.plot_trisurf(x, y, z, cmap='viridis', edgecolor='none')

莫比烏斯帶(應(yīng)用曲面三角剖分)

#繪制莫比烏斯帶
#由于它是一條二維帶,因此需要兩個(gè)內(nèi)在維度。theta維度取值范圍是0~2pi,寬度維度w取值范圍是-1~1
theta = np.linspace(0, 2 * np.pi, 30)
w = np.linspace(-0.25, 0.25, 8)
w, theta = np.meshgrid(w, theta)
phi = 0.5 * theta
#x-y平面內(nèi)的半徑
r = 1 + w * np.cos(phi)

x = np.ravel(r * np.cos(theta))
y = np.ravel(r * np.sin(theta))
z = np.ravel(w * np.sin(phi))

#要畫(huà)出莫比烏斯帶,還必須保證三角部分是正確的。最好的方法是首先用基本參數(shù)化方法定義三角部分,然后用Matplotlib將
#這個(gè)三角剖分映射到莫比烏斯帶的三維空間里
from matplotlib.tri import Triangulation
tri = Triangulation(np.ravel(w), np.ravel(theta))
ax = plt.axes(projection='3d')
ax.plot_trisurf(x, y, z, triangles=tri.triangles, cmap='viridis', linewidth=0.2)
ax.set_xlim(-1, 1);ax.set_ylim(-1,1);ax.set_zlim(-1,1)

到此這篇關(guān)于如何用Matplotlib 畫(huà)三維圖的示例代碼的文章就介紹到這了,更多相關(guān)Matplotlib 三維圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于樹(shù)莓派的語(yǔ)音對(duì)話(huà)機(jī)器人

    基于樹(shù)莓派的語(yǔ)音對(duì)話(huà)機(jī)器人

    這篇文章主要為大家詳細(xì)介紹了基于樹(shù)莓派的語(yǔ)音對(duì)話(huà)機(jī)器人,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 編寫(xiě)多線(xiàn)程Python服務(wù)器 最適合基礎(chǔ)

    編寫(xiě)多線(xiàn)程Python服務(wù)器 最適合基礎(chǔ)

    很好的Python多線(xiàn)程基礎(chǔ)教程,能夠幫助初學(xué)者快速了解Python多線(xiàn)程簡(jiǎn)單實(shí)現(xiàn)。線(xiàn)程可以使任何程序運(yùn)行得更快。但是這也增加了代碼的復(fù)雜性。所以,如果你發(fā)現(xiàn)很難理解,那么添加更多的日志將有助于檢查里面發(fā)生了什么
    2018-09-09
  • OpenCV-Python?對(duì)圖像的基本操作代碼

    OpenCV-Python?對(duì)圖像的基本操作代碼

    這篇文章主要介紹了OpenCV-Python?對(duì)圖像的基本操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • python實(shí)現(xiàn)對(duì)輸入的密文加密

    python實(shí)現(xiàn)對(duì)輸入的密文加密

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)對(duì)輸入的密文加密,分析python求解簡(jiǎn)單加密問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法

    pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法

    今天小編就為大家分享一篇pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python如何利用plt.legend()添加圖例代碼示例

    python如何利用plt.legend()添加圖例代碼示例

    用python的matplotlib畫(huà)圖時(shí),往往需要加圖例說(shuō)明,下面這篇文章主要給大家介紹了關(guān)于python如何利用plt.legend()添加圖例的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Python爬蟲(chóng)入門(mén)教程02之筆趣閣小說(shuō)爬取

    Python爬蟲(chóng)入門(mén)教程02之筆趣閣小說(shuō)爬取

    這篇文章主要介紹了Python爬蟲(chóng)入門(mén)教程02之筆趣閣小說(shuō)爬取,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 簡(jiǎn)單介紹Python中的decode()方法的使用

    簡(jiǎn)單介紹Python中的decode()方法的使用

    這篇文章主要介紹了簡(jiǎn)單介紹Python中的decode()方法的使用,是Python入門(mén)學(xué)習(xí)當(dāng)中必須掌握的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python hashlib模塊用法實(shí)例分析

    Python hashlib模塊用法實(shí)例分析

    這篇文章主要介紹了Python hashlib模塊用法,結(jié)合實(shí)例形式分析了Python使用hash模塊進(jìn)行md5、sha1、sha224、sha256、sha512等加密運(yùn)算相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • Python3操作SQL Server數(shù)據(jù)庫(kù)(實(shí)例講解)

    Python3操作SQL Server數(shù)據(jù)庫(kù)(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇Python3操作SQL Server數(shù)據(jù)庫(kù)(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10

最新評(píng)論