用Python三維可視化-一個神奇的函數


python的強大已經深入人心,除了語法優雅、入門容易、開發快速等優點外,其最大的強大之處在於:

無所不能!

他的無所不能得益於它易擴展、膠水語言、開源的特性,全世界廣大開發者都會為Python添加各種領域、各種功能並且質量優良的擴展庫,比如今天要講的這位:

Mayavi——一個方便、強大的三維可視化庫

除此之外,還要講一位神奇的二元函數:

 

為什么神奇?為什么有個系數4/3?用Mayavi將其顯示出來,你看了就知道。

首先,確保你的python是2.X版本(3.X版本沒試過,應該也可以),並安裝了numpy、mayavi庫

然后,代碼如下:

1 import numpy as np
2 from enthought.mayavi import mlab
3 x,y=np.ogrid [-2:2:160j,-2:2:160j]
4 z=abs(x)*np.exp(-x**2-(y/.75)**2)
5 pl=mlab.surf(x,y,z,warp_scale=2)
6 mlab.axes(xlabel='x',ylabel='y',zlabel='z')
7 mlab.outline(pl)
8 mlab.show()

其中,

第1、2行:導入numpy和mayavi可視化庫;

第3行:划分自變量x和y的范圍(都是-2到2)和間隔(分成160等份),將區域柵格化

第4行:計算每個(x,y)組合對應的z的值,在numpy里,只需要一句話,它會自動生成一個numpy數組,保存每個自變量對應的函數值

第5行:創建一個mlab.surf對象,用於將數據顯示為曲面效果,將x,y,z作為參數

第6行:設置三個坐標軸的標簽

第7行:為顯示區域添加外框線

第8行:顯示在屏幕上

 

短短8行,就能得到以下效果:

python,就是這么厲害!

ps:系數4/3是為了調整y方向的縮放比例,讓畫面更有沖擊力,你懂的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM