好的..一个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()
考虑所有变量都是从浏览器表单字段给出的输入参数。请帮忙!! : - )
答案 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(在这种情况下使用某些配置,请检查该页面),那么它应该适合您,但也可能需要一些实验。