Opened 12 years ago
Last modified 7 years ago
#9471 new enhancement
include matplotlib html5 canvas rendering to sage
Reported by: | was | Owned by: | jason, was |
---|---|---|---|
Priority: | major | Milestone: | sage-6.4 |
Component: | graphics | Keywords: | |
Cc: | jason | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
See http://code.google.com/p/mplh5canvas/
Let's include this in Sage soon. I just tried it out for fun on my laptop:
(1) Grab and extract the tarball from here:
then install it with "sage -python setup.py install"
(2) Install netifaces:
sage -sh easy_install netifaces exit
(3) In the Sage notebook, or command line, paste something like this:
import matplotlib matplotlib.use('module://mplh5canvas.backend_h5canvas') from pylab import * import time """Simple static plot, mostly for testing zooming... """ clf() theta = arange(0,8*pi,0.1) a=1 b=.2 for dt in arange(0,2*pi,pi/2.0): x = a*cos( theta+dt )*exp(b*theta) y = a*sin( theta+dt )*exp(b*theta) dt = dt+pi/4.0 x2 = a*cos( theta+dt )*exp(b*theta) y2 = a*sin( theta+dt )*exp(b*theta) xf = concatenate( (x,x2[::-1]) ) yf = concatenate( (y,y2[::-1]) ) p1=fill(xf,yf) show()
Basically, you can put nearly any example from the matplotlib website before show (and after clf()) and it will "just work".
What happens above is that a new server is started and the plot displayed in it. Figuring out how to use our existing twisted server for interaction could be a nontrivial but very import challenge.
Change History (5)
comment:1 Changed 12 years ago by
- Cc jason added
comment:2 Changed 8 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:3 Changed 8 years ago by
- Milestone changed from sage-6.1 to sage-6.2
comment:4 Changed 8 years ago by
- Milestone changed from sage-6.2 to sage-6.3
comment:5 Changed 7 years ago by
- Milestone changed from sage-6.3 to sage-6.4