7

さて、Pythonプログラムの出力はTkinterウィンドウに表示されます。これは個別に開きます。私がやりたいのは、このウィンドウをブラウザに埋め込むことです。コードは次のとおりです。

import numpy as np
import matplotlib
import matplotlib.cbook as cbook
import matplotlib.image as image
import matplotlib.pyplot as plt

datafile = cbook.get_sample_data('logo2.png', asfileobj=False)

print 'loading', datafile

im = image.imread(datafile)

im[:,:,-1] = 0.5  # set the alpha channel

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(np.random.rand(20), '-o', ms=20, lw=2, alpha=0.7, mfc='orange')

ax.grid()

fig.figimage(im, 10, 10)

plt.show()

すべての変数は、ブラウザのフォームフィールドから指定された入力パラメータであると考えてください。助けてください!!:-)

4

1 に答える 1

7

同様の質問に対するJoeKingtonの回答に基づくと、バックエンドmplh5canvasはおそらくあなたが探しているものです。サンプルコードをそれと連動するように適合させ、

import numpy as np
import matplotlib
import mplh5canvas

matplotlib.use('module://mplh5canvas.backend_h5canvas')

import matplotlib.cbook as cbook
import matplotlib.image as image
import matplotlib.pyplot as plt


fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(np.random.rand(20), '-o', ms=20, lw=2, alpha=0.7, mfc='orange')

ax.grid()

plt.show(open_plot=True)

アニメーションを許可する場合でも、探している種類の双方向性でうまく機能するようです。そうは言っても、インストールwikiページで説明されているように、すべてのブラウザをサポートしているわけではありません。使用をChrome、Safari、またはOperaに制限することが許容される場合(この場合、いくつかの構成では、そのページを確認してください)、ある程度の実験が必要になる場合もありますが、それは適切です。

于 2012-06-15T02:50:19.993 に答える