I'm kind of surprised no-one else has requested this: how about making all
matplotlib objects picklable?
The ability to save a plot to disk as a python object and recall it at a
later date, or send a live matplotlib figure over a network socket would
be really useful. I often have plots I need to make small changes to at a
Getting the pickling of all the C-objects right might be tricky, I guess.
From: John Hunter <jdhunter@ac...> - 2005-02-10 14:51:45
>>>>> "Bryan" == Bryan Cole <bryan.cole@...> writes:
Bryan> I'm kind of surprised no-one else has requested this: how
Bryan> about making all matplotlib objects picklable?
It has been requested before. I remember Prabhu once asking whether
matplotlib supports this. He uses xmgrace, and relies heavily on the
ability to dump the figure objects to file and pick up where he left
off. Not having this feature is a show-stopper for him.
Bryan> The ability to save a plot to disk as a python object and
Bryan> recall it at a later date, or send a live matplotlib figure
Bryan> over a network socket would be really useful. I often have
Bryan> plots I need to make small changes to at a later date.
Would it suffice to send over the data and the matplotlib commands
needed to operate on it -- or perhaps to send the image buffer as a
string. What is the use case where sending the actual figure object
Bryan> Getting the pickling of all the C-objects right might be
Bryan> tricky, I guess.
I don't think the extension code part would be too bad. Extension
code is mainly called at draw time and thus stores little data -- eg
the image and agg backend extension modules. There are some
exceptions to this, eg the transformation functions and axes limits
are stored in extension code. Although the amount of data is small,
it would be tricky to get this part right, basically because of the
way lazy values work -- see
http://matplotlib.sf.net/matplotlib.transforms.html. But this could
be worked around with a little thought.
This is not a paradigm I need or use much in my own work -- perhaps if
it existed I would use it more. So I probably won't take the lead on
this one, but would be happy to work with and help you or someone else
who is, and provide helper methods for the extension code, etc.