How to embed python tkinter window into a browser?

matplotlib, numpy, python, tkinter

Solution

Based on Joe Kington's answer to a similar question, the backend mplh5canvas is possibly what you are looking for. Adapting your example code to work with it,

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)

It seems to work well with the kind of interactivity you are looking for, even allowing animation. Having said that, it doesn't support every browser, as described in it's installation wiki page. If it is acceptable to restrict use to Chrome, Safari or Opera (in this case with some configuration, check that page) then it should suit you well, though might need some experimentation as well.

Problem

Okay..the output of a python program is shown into a Tkinter window..which opens separately. What I want to do is to embed this window within the browser. Here is the code: ``` 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() ``` Consider that all the variables are input parameters that are given from a browser form field. Please help!! :-)

Original source

Related problems