##// END OF EJS Templates
A number of changes to how traitlets and components work....
A number of changes to how traitlets and components work. * Classes can be given as strings, like 'foo.bar.Bar' in the Type and Instance traitlets as well as the get_instances method of Component. This is done to allow for forward declarations. * New IPython.utils.importstring that imports a class from a string, like 'foo.bar.Bar'.

File last commit:

r2217:fcba632f
r2229:46a9a124
Show More
gui-mpl.py
54 lines | 1.3 KiB | text/x-python | PythonLexer
"""Test the new %gui command. Run this in ipython as
In [1]: %gui [backend]
In [2]: %run switchgui [backend]
where the optional backend can be one of: qt4, gtk, tk, wx.
Because of subtle difference in how Matplotlib handles the different GUI
toolkits (in things like draw and show), minor modifications to this script
have to be made for Tk to get it to work with the 0.99 and below releases
of Matplotlib. However, in the future, Matplotlib should be able to have
similar logic for all the toolkits, as they are all now using PyOS_InputHook.
"""
import sys
import time
from IPython.lib import inputhook
gui = inputhook.current_gui()
if gui is None:
gui = 'qt4'
inputhook.enable_qt4(app=True)
backends = dict(wx='wxagg', qt4='qt4agg', gtk='gtkagg', tk='tkagg')
import matplotlib
matplotlib.use(backends[gui])
matplotlib.interactive(True)
import matplotlib
from matplotlib import pyplot as plt, mlab, pylab
import numpy as np
from numpy import *
from matplotlib.pyplot import *
x = np.linspace(0,pi,500)
print "A plot has been created"
line, = plot(x,sin(2*x))
inputhook.spin() # This has to be removed for Tk
print "Now, we will update the plot..."
print
for i in range(1,51):
print i,
sys.stdout.flush()
line.set_data(x,sin(x*i))
plt.title('i=%d' % i)
plt.draw()
inputhook.spin() # This has to be removed for Tk