2017-07-25 26 views
0

我想要創建一個python腳本,它可以沿水平軸放大和縮小matplotlib圖形。我的情節是一組水平條形圖。python matplotlib將圖保存爲數據文件

我也想讓它能夠採取任何通用matplotlib圖。

我不想只加載圖像並放大圖像,我想沿水平軸放大圖形。 (我知道如何做到這一點)

有沒有什麼辦法可以保存和加載創建的圖形作爲數據文件或有一個對象,我可以保存和加載以後?

(通常情況下,我會創造我的圖,然後與matplotlib plt.show顯示出來,但圖創建需要時間,我不想我要顯示它每次都重新創建圖表)

+0

是否要保存圖形或底層數據? –

+0

@DavidZ底層數據,數組或任何保存圖形數據的東西。 – azazelspeaks

+0

也許你可以使用泡菜來保存你的對象,然後再次加載它? https://docs.python.org/2/library/pickle.html –

回答

1

您可以使用pickle包來保存您的軸並將其重新裝回。

保存您的情節變成pickle文件:

import pickle 
import matplotlib.pyplot as plt 
ax = plt.plot([1,2,5,10]) 
pickle.dump(ax, open("plot.pickle", "wb")) 

,然後加載回:

import pickle 
import matplotlib.pyplot as plt 
ax = pickle.load(open("plot.pickle", "rb")) 
plt.show() 
+0

我正在使用fig,(graph,label_texts)= plt.subplots(2,1,gridspec_kw = {'height_ratios':[4.5,1]} )來生成我的情節。我試圖pickle.dump(圖,文件(file_name.split('。')[0] +'_ graph.pickle','w'))這給了我:無法在0x0CB02FB0> pickle >:找不到它作爲generate_graph。 這似乎是我如何生成圖像的問題。有什麼想法嗎? @Cedric – azazelspeaks

+0

嘗試'pickle.dump(fig,open(「plot.pickle」,「wb」))'。我認爲你應該使用'open'而不是'file' –

+0

我得到了同樣的錯誤。我認爲這是一個泡菜問題,而不是開放的事情。 – azazelspeaks

0

@塞德里克的答案。

此外,如果酸洗功能出現酸洗錯誤,請將「蒔蘿」庫添加到酸洗腳本中。你只需要在開始時導入它,剩下的就完成了。