2013-04-27 19 views
5

Bir sokağın oluşturulacağı belirli bir alanın geometrik yüksekliğini temsil eden bir 2d dizilim var. Bunu scipy.misc.toimage kullanarak görüntüleyebilirim. Ancak alanın basit bir 3D görünümünü almak istiyorum. Bu verileri bir 3d görüntü olarak çizmek veya işlemek için basit bir yol var mı?Python ile arazi çizin mi?

cevap

8

Belki kullanmak matplotlib en plot_surface veya plot_wireframe: X, Y, Z You have yükseklikleri, Z: Bu işlevler üç 2D-diziler gerektiren

import matplotlib.pyplot as plt 
import numpy as np 
import mpl_toolkits.mplot3d.axes3d as axes3d 

np.random.seed(1) 
fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) 
N = 100 
X, Y = np.meshgrid(np.arange(N), np.arange(N)) 
heights = np.sin(2*np.pi*np.sqrt(X**2+Y**2)/N) 
ax.plot_surface(X, Y, heights, cmap=plt.get_cmap('jet')) 
plt.show() 

enter image description here

. Z s ile ilişkili standart X ve Y konumlarını oluşturmak için np.meshgrid'u kullanabilirsiniz.