2014-06-19 12 views
9

Tôi muốn biết cách có các trục thích hợp trên một ô bề mặt 3D trong MayaVi. Các trục tốt nhất mà tôi có thể tạo ra một cái gì đó trông giống như this ...Cách vẽ các trục 3D thích hợp trong MayaVi, giống như các trục được tìm thấy trong Matplotlib

enter image description here

Tuy nhiên, những không trông rất chuyên nghiệp nếu tôi là để cung cấp cho một bài thuyết trình hoặc đặt này trên một tấm áp phích.

Tôi muốn các trục để trông giống như this ...

enter image description here

Những trục trông giống chuyên nghiệp hơn và dễ đọc hơn so với mặc định MayaVi trục.

Mọi trợ giúp sẽ được đánh giá cao.

Cảm ơn!

+0

Bạn đang sử dụng phiên bản MayaVi nào? – Schorsch

+0

Câu hỏi của bạn về cơ bản là "Tôi không thích các trục mayavi mặc định, làm thế nào để tôi có được những cái tốt hơn?" Theo tôi, đây không phải là câu hỏi hay, mặc dù nó có thể là một yêu cầu tính năng quan trọng. Câu trả lời cho câu hỏi của bạn là đây là cách các trục nhìn trong VTK. Nếu bạn không hài lòng với họ, bạn có nhiều lựa chọn. Bạn có thể tìm kiếm các thư viện khác nhau để làm những gì bạn muốn, bạn có thể cố gắng yêu cầu các nhà phát triển mayavi/vtk độc đáo nếu họ triển khai tính năng của bạn hoặc bạn có thể tự viết nó. – aestrivex

+0

Chỉ cần chạy vào cùng một vấn đề. Trong khi tôi đồng ý rằng "đây chỉ là cách VTK nhìn", nó không phải là một câu trả lời thỏa đáng. Theo tôi, vấn đề này làm cho mayavi gần như vô dụng đối với các ứng dụng khoa học vì bạn không bao giờ có thể xuất bản các ô tìm kiếm kỳ quặc như vậy. Đi tìm giải pháp thay thế ... R có vẻ hứa hẹn – HansSnah

Trả lời

3

Tôi cũng gặp sự cố này. tôi bị hack một workaround xấu bằng cách không hiển thị các trục mayavi, nhưng âm mưu trục Tôi cần bản thân mình sử dụng plot3d()

from mayavi import mlab 
import numpy as np 
xx = yy = zz = np.arange(-0.6,0.7,0.1) 
xy = xz = yx = yz = zx = zy = np.zeros_like(xx)  
mlab.plot3d(yx,yy+lensoffset,yz,line_width=0.01,tube_radius=0.01) 
mlab.plot3d(zx,zy+lensoffset,zz,line_width=0.01,tube_radius=0.01) 
mlab.plot3d(xx,xy+lensoffset,xz,line_width=0.01,tube_radius=0.01) 

Bây giờ bạn có thể thêm nhãn và chú thích bằng text3d() lực Rất thanh nha và cao cấp brute, nhưng hoạt động trong một nhúm.

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