如何将python tkinter窗口嵌入浏览器?

时间:2012-06-03 23:02:28

标签: python numpy matplotlib tkinter

好的..一个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()

考虑所有变量都是从浏览器表单字段给出的输入参数。请帮忙!! : - )

1 个答案:

答案 0 :(得分:6)

基于Joe Kington's answer类似的问题,后端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)

它似乎与你正在寻找的那种交互性很好地协作,甚至允许动画。话虽如此,它并不支持每个浏览器,如installation wiki page中所述。如果可以限制使用Chrome,Safari或Opera(在这种情况下使用某些配置,请检查该页面),那么它应该适合您,但也可能需要一些实验。