Mayaviのドキュメント "http://docs.enthought.com/mayavi/mayavi/building_applications.html"を読んで本当に混乱します。Mayaviを使ってインタラクティブに3Dプロットを行う簡単な方法は?
私は、スライダーをドラッグしてプロットの内容を変更するなど、ユーザーとのやりとりを許可する3Dプロットが必要な場合は、には、特性を使用するがありますか?私が何であるかの特性を知らない
class visual(HasTraits):
scene = ...
view = View(...)
@on_trait_change(...)
def do_something()
...
:ドキュメントでは、標準的な手順は次のようなものです。私は、コンストラクタの外で定義されているクラスの属性(それは '特性'ですか?)が何であるかを理解していません。
元の質問に戻って、変更可能な3Dプロットが必要だった場合、私はそれを直接行うだけではどうですか?私は気にしない場合
import numpy as np
from mayavi import mlab
from matplotlib import pyplot as plt
from matplotlib.widgets import Slider
def slider_changed(val):
s.mlab_source.scalars = np.asarray(x * (val + 1), 'd')
# mayavi 3d plot
x, y = np.mgrid[0:3:1,0:3:1]
s = mlab.surf(x, y, np.asarray(x*0.1, 'd'))
# a matplotlib slider
plt.figure()
ax = plt.subplot(1, 1, 1)
slider = Slider(ax, valmin=0., valmax=1., label='test')
slider.on_changed(slider_changed)
plt.show()
mlab.show()
約アプリケーションでの3Dプロットを埋め込むように思える、これはそれを行うにははるかに簡単な方法があり、次のように働く例がありますか? 3dプロットの多くの属性は、mlab_source
の属性によって操作できます。ここでは例としてmatplotlibスライダーを使用していますが、pyqt UIなどのように見えます。
ただし、ドキュメントがパイプラインとパイプラインオブジェクトの
すべての異なる特性が、設定上の特徴として、それらが変更されたときにダイアログとその火災コールバックで可視化することができる、すなわち特別な属性を表現していると言います。特に、これは、視覚化オブジェクトが変更されたときに、シーンが自動的に更新できることを意味する。
自動的に更新されるものが必要な場合は、上記の方法で特性を使用する必要がありますか?
私はこの質問が何を目指しているのか分かりません。あなたがアップデートを実装した方法に満足しているなら、あなたはそれを確かに使うことができます。 – ImportanceOfBeingErnest
私は混乱して、何を聞くべきか分からなかった。今編集しました。質問は私が形質を使わなければならないということですね?ドキュメントでは、QTアプリケーションにmayaviを埋め込む方法は、最初にそれを 'HasTraits'に埋め込み、それをQTに埋め込むことです。 qt(またはmatplotlib、または他のUI)に直接入ってみませんか? – Alex