2013-02-19 57 views
5

Trong một âm mưu matplotlib 3D, tôi có thể thiết lập số hàng/cột xác định tổng số các gương mặt có thể nhìn thấy trên bề mặt vớimàu liên tục trên bề mặt 3d matplotlib

s=ax.plot_surface(x,y,z, color='gray', shade=True, rstride=1,cstride=1) 

nơi thấp hơn là những con số rstride và cstride, nhỏ hơn là những khuôn mặt. Vì tôi cũng vẽ sơ đồ/quỹ đạo trên bề mặt này, tôi muốn loại bỏ các cạnh của khuôn mặt. Bây giờ, với

s.set_linewidth(0) 

và thiết lập giá trị thấp của rstride và cstride Tôi gần như có được những gì tôi muốn, tức là một màu sắc thay đổi gần như liên tục trên bề mặt, cung cấp cho một hiệu ứng 3D tốt.

Thật không may, các dòng vẫn ở đó, như các vị trí trống giữa các khuôn mặt. Có cách nào để làm việc này không? Có lẽ tôi chỉ thiếu một lệnh đơn giản ..

EDIT: mã tạo bề mặt dài để báo cáo ở đây. Tôi đính kèm một bản chụp kết quả với cách giải quyết được viết ở trên. surface with white lines

+0

bạn có thể bao gồm một bức tranh về những gì bạn muốn xem và gửi một số dữ liệu mẫu + mã tối thiểu đó chứng tỏ những gì bạn có cho đến nay? –

Trả lời

7

Bạn đã thử thêm antialiased=False vào đó chưa?

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1) 

enter image description here

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, linewidth=0) 

enter image description here

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, linewidth=0, antialiased=False) 

enter image description here

+0

antialiased = False giải quyết vấn đề. Cảm ơn bạn! – gg349

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