简体   繁体   中英

Store plotted data for later use

I do much (practically all) of my data analysis in Jupyter/iPython-notebooks. For convenience, I obviously also plot my data in those notebooks using matplotlib / pyplot . Some of those plots I need to recreate externally later on, for example to use them in latex . For this I save the corresponding data as textfiles to the harddrive. Right now, I manually create a numpy-array by stacking all the data needed for the plot, and save this using numpy.savetxt .

What I would like to have is a way to save all data needed for a specific plot written to the same file in an (semi)automatic way, but I am at a loss if it comes to the smart way of doing so.

Thus I have two questions:

  • Is it possible (and save to do) to create something like a plot-memory object, that stores all data plotted per figure, and has a method similar to Memoryobject.save_plot_to_file(figname) ? This object would need to know which figure I am working on, so I would need to create a layer above matplotlib, or get this information from the matplotlib objects

  • Is there a simpler way? The python universe is huge, and I do not know half of it. Maybe something like this already exists?

Edit : Clarification: I do not want to save the figure object. What I want to do is something like this:

fig = plt.figure()
fig.plot(x1, y1)
fig.plot(x2, y2 + y3)

# and at a later point
arrays = get_data_from_plot(fig)
data = process(arrays)
np.savetxt('textfile', data)

You could pickle the object (using the cPickle module). See this question here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM