2015-05-13 97 views
5

Có cách nào để vẽ một tệp hình ảnh trên bề mặt biểu đồ 3D bằng Python không?Làm thế nào để vẽ một tệp hình ảnh trên bề mặt biểu đồ 3D bằng cách sử dụng Python? - không vẽ như một mặt phẳng phẳng

Tôi đã thấy một vài cách vẽ sơ đồ này làm mặt phẳng nhưng tôi muốn hình ảnh treo lên trên bề mặt của ô. Điều này có thể không?

+0

câu hỏi này có thể là một chút quá rộng như hiện nay ... bạn có thể muốn thêm thông tin: những gì hình ảnh? đồ thị gì? bạn có ví dụ về kết quả bạn đang cố đạt được không? –

+0

Không có âm mưu 3D của matplotlib. Tuy nhiên, có thể với Mayavi/mlab. Nếu bạn muốn tôi có thể đưa ra một ví dụ. –

+0

Xin chào Julien, tôi đang cố gắng chụp ảnh một trang web và sau đó treo nó lên trên dữ liệu địa hình. – SteveResearch

Trả lời

1

Hãy xem câu trả lời cho this question. Họ sử dụng một z cố định, nhưng bạn có thể thay thế bằng dữ liệu địa hình của bạn để có được hiệu ứng mong muốn.

4

Bạn cần thay đổi màu của bề mặt thành màu của hình ảnh như trong ví dụ này do @sarwar đề xuất.

import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
from matplotlib.cbook import get_sample_data 
from matplotlib._png import read_png 
import numpy as np 

fn = get_sample_data("lena.png", asfileobj=False) 
img = read_png(fn) 

x, y = np.mgrid[0:img.shape[0], 0:img.shape[1]] 

ax = plt.gca(projection='3d') 
ax.plot_surface(x, y, np.sin(0.02*x)*np.sin(0.02*y), rstride=2, cstride=2, 
       facecolors=img) 
plt.show() 

Điều đó mang lại kết quả

enter image description here

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