2016-07-30 1 views
0

Я делаю много (практически все) анализа данных в Jupyter/iPython-notebooks. Для удобства я, очевидно, также строю свои данные в этих ноутбуках, используя matplotlib/pyplot. Некоторые из тех графиков, которые мне нужно обновить позже, например, использовать их в latex. Для этого я сохраняю соответствующие данные как текстовые файлы на жестком диске. Прямо сейчас я вручную создаю numpy-массив, уложив все данные, необходимые для графика, и сохраните их с помощью numpy.savetxt.Сохраняйте данные для последующего использования

Что бы я хотел, это способ сохранить все данные, необходимые для конкретного участка, записанного в тот же файл в (полу) автоматическом режиме, но я в недоумении, если дело доходит до умного пути от этого.

Таким образом, у меня есть два вопроса:

  • Можно ли (и сохранить, чтобы сделать), чтобы создать что-то вроде объекта сюжетно-памяти, которая хранит все данные, нанесенные на рисунке, и имеет метод, аналогичный Memoryobject.save_plot_to_file(figname)? Этот объект должен знать, на какой фигуре я работаю, поэтому мне нужно будет создать слой выше matplotlib или получить эту информацию от объектов matplotlib.

  • Есть ли более простой способ? Вселенная python огромна, и я не знаю ее половины. Может, что-то вроде этого уже существует?

Edit: Разъяснение: Я не хотите сохранить объект фигуры. То, что я хочу сделать что-то вроде этого:

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) 
+0

Никогда не пробовал это сам, но, возможно, травление объекта фигуры будет работать ??? – Julien

+0

@Dux Чтобы извлечь данные из сюжета, возможно, вы можете использовать [этот ответ] (http://stackoverflow.com/questions/8938449/how-to-extract-data-from-matplotlib-plot). – Praveen

ответ

0

Можно замариновать объект (используя cPickle модуль). См. Этот вопрос here.

+0

Извините, похоже, мой вопрос вводит в заблуждение. Я обновил его. В нижней строке я хочу только данные графика во время выполнения, НЕ сохранять объект фигуры – Dux

+0

Вы можете использовать 'cPickle' для сохранения данных. Я использовал 'cPickle' в ноутбуках Jupyter, чтобы сохранить данные и перезагрузить их позже. Вы можете сохранить переменную в маринованном объекте, чтобы сообщить вам, какую функцию построения графика вы использовали, если это то, что вам нужно. –

+0

Я знаю это. Но I * do * нужны данные, сохраненные на диске в текстовом формате, например. CSV. – Dux