2013-10-30 47 views
2

我正在使用matplotlib(python)制作三维表面图。我想要将xy xz和yz表面上的3D表面的影子(2D透视投影)可视化。python:三维表面图的2D透视投影

在matlab中,SHADOWPLOT做了必要的工作。有谁知道Python是否有类似的东西可用于相同的?

+1

看一看本实施例中从Matplotlib库:http://matplotlib.org/examples /mplot3d/contourf3d_demo2.html –

回答

3

实施例从{here}

""" 
.. versionadded:: 1.1.0 
    This demo depends on new features added to contourf3d. 
""" 

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
from matplotlib import cm 

fig = plt.figure() 
ax = fig.gca(projection='3d') 
X, Y, Z = axes3d.get_test_data(0.05) 
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3) 
cset = ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm) 
cset = ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm) 
cset = ax.contourf(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm) 

ax.set_xlabel('X') 
ax.set_xlim(-40, 40) 
ax.set_ylabel('Y') 
ax.set_ylim(-40, 40) 
ax.set_zlabel('Z') 
ax.set_zlim(-100, 100) 

plt.show() 

和结果:

enter image description here

+0

这听起来很好..我会尝试在我的代码:) – Panchi