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

根据Joe Kington对类似问题的回答,后端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 回答