使用python實現三維圖可視化

這是學習tensorflow框架中遇到的知識,這裡定義函數的時候選用的是將x和y封裝起來,方便tensorflow求導。

要慢慢習慣這種寫法

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def himmelblau(x):
return (x[0]**2 + x[1] - 11)**2 + (x[0] + x[1]**2 - 7)**2
x = np.linspace(-6, 6, 200)
y = np.linspace(-6, 6, 200)
X, Y = np.meshgrid(x, y)
fig = plt.figure(figsize=(12, 10))
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z)   # 畫曲面
# ax.plot(X, Y, Z)       # 畫曲線,好像x, y得是一維的
ax.view_init(60, -30)       # 好像是調成圖的角度
ax.set_xlabel('X')
ax.set_ylabel('Y')
plt.show()

補充:python3安裝mayavi,實現3d動態可視化操作

如下代碼呢,是在網上找的,搜索關鍵詞“python 3d 動態可視化”,從找到代碼到真正執行成功,問題及解決方法記錄一下。

環境win8 64位,python3.6

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

問題:

雖然有文章已經指出安裝mayavi時安裝順序為PyQt4–>Traits–>VTK–>Mayavi,但是並不知道原因,所以還是直接安裝瞭mayavi,出現如下報錯信息:

Microsoft Visual C++ 14.0 is required

原因:

缺少依賴包

解決:

根據文章所說,在https://www.lfd.uci.edu/~gohlke/pythonlibs/中查找到mayavi的相關依賴,

1、VTK通過pip install VTK安裝

2.PyQt4無法通過pip install PyQt4安裝,所以需要下載到Python安裝目錄的Script下(環境為python3.6,64位win),通過命令pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl:

3、Traits並不是作為mayavi的依賴包,而是屬於ETS的一部分,同樣通過下載文件,pip install traits-4.6.0-cp36-cp36m-win_amd64.whl安裝

4、mayavi安裝,同樣通過下載文件,pip install mayavi-4.6.0+vtk81-cp36-cp36m-win_amd64.whl安裝

註:PyQt4、Traits、mayavi也不是不能通過pip install直接從網上下載安裝,應該還是缺少相關的依賴,這裡隻保證通過文件安裝不出錯。

問題:

運行代碼時報錯:ImportError: numpy.core.multiarray failed to import

原因:

由於mayavi相關的包安裝的是最新的版本,需要更新numpy

解決:

pip install --upgrade numpy

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀:

    None Found