1

次の python コード (Enthought の Web サイトから) を実行して、Enthought の Mayavi モジュールのアニメーション機能をテストしようとしています。

from mayavi import mlab
import numpy
n_mer, n_long = 6, 11
pi = numpy.pi
dphi = pi/1000.0
phi = numpy.arange(0.0, 2*pi + 0.5*dphi, dphi, 'd')
mu = phi*n_mer
x = numpy.cos(mu)*(1+numpy.cos(n_long*mu/n_mer)*0.5)
y = numpy.sin(mu)*(1+numpy.cos(n_long*mu/n_mer)*0.5)
z = numpy.sin(n_long*mu/n_mer)*0.5

# View it.
l = mlab.plot3d(x, y, z, numpy.sin(mu), tube_radius=0.025, colormap='Spectral')

# Now animate the data.
ms = l.mlab_source
for i in range(10):
    x = numpy.cos(mu)*(1+numpy.cos(n_long*mu/n_mer +
                                  numpy.pi*(i+1)/5.)*0.5)
    scalars = numpy.sin(mu + numpy.pi*(i+1)/5.)
    ms.set(x=x, scalars=scalars)

ただし、実行しても何も起こりません。エラーなしで実行されますが、TVTK シーン ウィンドウだけが空白でポップアップします。画像もアニメーションもありません。Mayavi モジュールのインポートに問題があるのでしょうか? ウェブサイトの例は次で始まります: from enthought.mayavi import mlab 一方、私は: from mayavi import mlab 'enthought.mayavi' インポート文字列が機能しません。私が使用している Mayavi は pip インストールです。
これを修正するにはどうすればよいですか? Mac OSX 10.8.2 を使用しています。前もって感謝します。

4

2 に答える 2

2

このデモは私のマシン (OS 10.8.2 にアップグレードしたばかり) で動作します。

ただし、最初に、インポートに関する質問に答えてください。約 1 年半前に、パッケージをリファクタリングして、インポートから考えられた名前を削除しました。したがって、mayavi の mlab をインポートする標準的な方法は、

from enthought.mayavi import mlab

from mayavi import mlab

セットアップは前者が機能するように設計されていますが、サンプル コードのインポートを 2 番目のパターンにリファクタリングしようとしました。したがって、インポート ステートメントの問題ではないと確信できます。

Mayavi で実行するものはまだありますか? これを試して:

from mayavi import mlab
mlab.test_plot3d()

また、mayavi のバージョン、使用している EPD (32 ビットまたは 64 ビット)、およびターミナルでの次の結果は何ですか?

$ echo $ETS_TOOLKIT
于 2013-01-28T17:24:37.500 に答える
0

Win 7 64 で Canopy を使用すると、同様の問題が発生しました。最後のフレームのみが表示され、アニメーションは表示されませんでした。pylab バックエンドを qt ではなく wx に変更して修正しました。

于 2013-10-19T07:40:03.267 に答える