2013-04-27 73 views
5

Tôi có một mảng 2d dày đặc thể hiện chiều cao hình học của một khu vực cụ thể nơi một đường phố sẽ được xây dựng. Tôi có thể hình dung điều này bằng cách sử dụng scipy.misc.toimage. Tuy nhiên tôi muốn có một cái nhìn 3D đơn giản của khu vực. Có cách nào đơn giản để vẽ hoặc hiển thị dữ liệu này dưới dạng hình ảnh 3D không?Vẽ một địa hình bằng python?

Trả lời

8

Có lẽ sử dụng matplotlib của plot_surface hoặc plot_wireframe:

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

Các chức năng này đòi hỏi ba 2D-mảng: X, Y, Z. Bạn có chiều cao, Z. Để tạo các tiêu chuẩn XY vị trí được liên kết với các số Z đó, bạn có thể sử dụng np.meshgrid.

Các vấn đề liên quan