最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用Matplotlib 畫三維圖的示例代碼

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

用Matplotlib畫三維圖

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

三維的線圖和散點圖

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

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

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

# 三維散點的數(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')

三維等高線圖

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)整觀察角度和方位角。這里將俯仰角設(shè)為60度,把方位角調(diào)整為35度
ax.view_init(60, 35)

線框圖和全面圖

全面圖和線框圖相似,只不過線框圖的每一個面都是由多邊形構(gòu)成。只要增加唉一個配色方案來填充這些多邊形,就可以感受到可視化圖形表面的拓撲結(jié)構(gòu)了。

#線框圖
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')

#使用極坐標可以獲得切片的效果
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)用場景下,上述這些要求均勻采樣的網(wǎng)格數(shù)據(jù)顯得太過嚴格且不太容易實現(xiàn)。這時就可以使用三角剖分部分圖形。

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)

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

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

#繪制莫比烏斯帶
#由于它是一條二維帶,因此需要兩個內(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))

#要畫出莫比烏斯帶,還必須保證三角部分是正確的。最好的方法是首先用基本參數(shù)化方法定義三角部分,然后用Matplotlib將
#這個三角剖分映射到莫比烏斯帶的三維空間里
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 畫三維圖的示例代碼的文章就介紹到這了,更多相關(guān)Matplotlib 三維圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 用pandas實現(xiàn)數(shù)據(jù)透視表功能

    python 用pandas實現(xiàn)數(shù)據(jù)透視表功能

    這篇文章主要介紹了python 用pandas實現(xiàn)數(shù)據(jù)透視表功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 利用python實現(xiàn)蝴蝶曲線

    利用python實現(xiàn)蝴蝶曲線

    這篇文章主要介紹了如何利用python實現(xiàn)蝴蝶曲線,自然界的很多現(xiàn)象都可以適當?shù)暮喕么鷶?shù)曲線和超越曲線來表達,下面我們就來利用去先畫出小蝴蝶,需要的小伙伴可以參考一下
    2022-03-03
  • python實現(xiàn)逐個讀取txt字符并修改

    python實現(xiàn)逐個讀取txt字符并修改

    今天小編就為大家分享一篇python實現(xiàn)逐個讀取txt字符并修改,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Django對接支付寶實現(xiàn)支付寶充值金幣功能示例

    Django對接支付寶實現(xiàn)支付寶充值金幣功能示例

    今天小編就為大家分享一篇Django對接支付寶實現(xiàn)支付寶充值金幣功能示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • pytorch自定義不可導激活函數(shù)的操作

    pytorch自定義不可導激活函數(shù)的操作

    這篇文章主要介紹了pytorch自定義不可導激活函數(shù)的操作,具有很好的參考價值,希望大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python常用字符串替換函數(shù)strip、replace及sub用法示例

    Python常用字符串替換函數(shù)strip、replace及sub用法示例

    這篇文章主要介紹了Python常用字符串替換函數(shù)strip、replace及sub用法,結(jié)合實例形式分析了Python針對字符串替換的常用函數(shù)strip、replace及sub功能及簡單使用技巧,需要的朋友可以參考下
    2018-05-05
  • Flask-Caching如何使用提高性能

    Flask-Caching如何使用提高性能

    Flask-Caching是提高Flask應(yīng)用性能的工具,通過緩存數(shù)據(jù)減少重復(fù)計算,加快響應(yīng)速度,本文就來介紹一下Flask-Caching使用,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • python機器學習樸素貝葉斯算法及模型的選擇和調(diào)優(yōu)詳解

    python機器學習樸素貝葉斯算法及模型的選擇和調(diào)優(yōu)詳解

    這篇文章主要為大家介紹了python機器學習樸素貝葉斯及模型的選擇和調(diào)優(yōu)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Python實現(xiàn)switch/case語句

    Python實現(xiàn)switch/case語句

    與Java、C\C++等語言不同,Python中是不提供switch/case語句的,這一點讓我感覺到很奇怪。我們可以通過如下幾種方法來實現(xiàn)switch/case語句
    2021-08-08
  • 8個Python必備的PyCharm插件(附下載地址)

    8個Python必備的PyCharm插件(附下載地址)

    Python是一種廣泛使用的編程語言,PyCharm是最受歡迎的Python IDE之一,本文就來介紹一下8個Python必備的PyCharm插件,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論

浑源县| 冀州市| 观塘区| 定结县| 昭苏县| 大悟县| 会泽县| 和静县| 津南区| 东山县| 顺平县| 勃利县| 原阳县| 武隆县| 山丹县| 大安市| 中牟县| 梧州市| 洛隆县| 彭阳县| 慈溪市| 河东区| 定安县| 建始县| 定南县| 曲松县| 建瓯市| 临高县| 仪征市| 宽甸| 多伦县| 亚东县| 鲁山县| 鄂伦春自治旗| 锦屏县| 东阿县| 额尔古纳市| 镇原县| 彝良县| 信宜市| 镇江市|