[IPython-dev] SVG figures status report
Bob McElrath
bob+ipython at mcelrath.org
Tue Jun 26 06:54:24 EDT 2012
Zoltán Vörös [zvoros at gmail.com] wrote:
> Dear Fernando, and Bob,
>
> I didn't want to bring up this issue before the new release, given that that
> has the higher priority, but since a new thread was opened along the same
> lines, I would like to respond to a couple of points raised here, and here:
> http://mail.scipy.org/pipermail/ipython-dev/2012-June/009476.html which I will
> quote here.
Sorry that I did not see that mail previously. :-/
But just a couple of comments.
> Based on these two threads, I have the feeling that the views on what an
> interactive plot should do are somewhat diverging, and we should first come to
> some consensus as to what we exactly want.
1. There's a lot of good code in mplh5canvas:
http://code.google.com/p/mplh5canvas/
I think it may be possible to extract their matplotlib backend and adapt it
to IPython. This could be relatively quick to do, and behaves exactly like
the other matplotlib GUI's.
2. I'm using my SVG branch daily and I will continue to beat on SVG. I'm not
entirely convinced that the bugs I see are not due to some bad
jQuery/CodeMirror interaction. I have one example in which the CodeMirror
updateDisplay() is using a ton of CPU when output cells with a lot of SVG
figures are focused. Other profiling I've done indicates it's style
recalculations that are eating a ton of CPU. A PNG or Canvas image cache
rendering is really a hack, and the long-term future is in SVG.
3. I'd say that computationally-oriented tasks, such as coordinate reporting,
changing to log axes, should be a top priority for interactive figures.
Secondary to that is massaging a figure into a final form, such as changing
ticks/labels etc, and importantly, *saving* it in a convenient form.
Switching to SVG or Canvas for figures will obscure one's ability to save
the figure and move it into your LaTeX document. (can't just right
click->save as anymore).
4. WRT Latex in worksheets and exporting: yet another major failing of
Maple/Mathematica was their slow evolution into horrible hackish document
processing systems. Mathematica made a bizarre Frankenstein beast in which
you could create entire documents, user interfaces, and unrelated garbage
with Mathematica commands. Maple added "2d math input" which is just a
nightmare of figuring out where it's going to put the cursor next, so you
can reposition it with the arrow keys. These things are just hacks, and no
one uses them to write papers, and never will. IPython should not have
delusions of grandeur, and I suggest focusing on computation is more useful.
The only elements of these "document processing systems" that I ever used
was annotation text around calculations, and folding blocks of code for
organization. IPython already has the former, I expect the latter will come
soon. Latex packages are very, very far from the realm of things I want to
worry about in a worksheet.
5. I'm far more concerned about the repeatability of calculations due to the
worksheet/kernel separation, and the general organization of a calculation
in a worksheet, than exporting in a "presentation" form. I think the
"worksheet" as a computing paradigm is weak and has many flaws, and I would
love to see some new and innovative ideas on this front. I'm not interested
in a reimplementation of Mathematica's interface.
I'll scratch my itch when it comes to IPython, and I hope it's helpful, but I
don't have the time or resources to implement much this. So, for the
maintainers, please don't depend on me in this regard.
--
Cheers, Bob McElrath
"The individual has always had to struggle to keep from being overwhelmed by
the tribe. If you try it, you will be lonely often, and sometimes frightened.
But no price is too high to pay for the privilege of owning yourself."
-- Friedrich Nietzsche
More information about the IPython-dev
mailing list