2014-10-22 90 views
3

類似的問題,有人問棧herehere顯示之後,但我不太滿意,因爲它仍然沒有解決我的問題。保存圖片爲pdf在python筆記本

考慮我有一個函數,做一些計算和顯示的圖(不返回數字對象)。出於個人偏好(並且保持跟蹤我的情節看起來像沒有保存每個)我在IPython中使用%matplotlib inline。現在我生成了一些圖,我決定保存其中的一個(比如顯示在筆記本中的第三個),右鍵點擊並選擇另存爲...,但只能作爲.png工作。

有沒有辦法將其保存爲.PDF文件,而無需修改返回一個數字對象的功能? (我知道這根本不難,但對於我的大多數情況來說,這僅僅是沒有必要的,因爲它最終只有20個數字值得保存)。

我發現後端正在%matplotlib inline之後被改變,這是(我猜)我無法將數字保存爲.pdf的原因。解決方法似乎使用%config InlineBackend.close_figures = False並使用plt.savefig(...)(答案來自here)。但這樣我可以只保存最後一個數字,並且每次都必須手動關閉數字。

如果我的問題,從壞的程序流程/編程風格的話,我會很樂意接受如何去做更好的建議。如果需要代碼示例,我可以提供一個。 我使用:

ipython (2.1.0) 
matplotlib (1.4.1) (with Qt4Agg backend if not inline) 
Python 2.7.6 
MacOSX 10.9.4 
+1

總之,沒有,沒有辦法做你想做的。瀏覽器中的筆記本界面並不知道該圖像已連接到特定的matplotlib圖形對象,因此它只能爲您提供png來保存。有一個配置開關可以使用SVG來顯示,而不是PDF。 – 2014-10-22 22:39:54

+0

我不知道這個選項,謝謝!對我來說,這實際上已經足夠了(我正在使用Latex進行寫作,對於.svg也是如此)。如果您將此作爲答案而不是評論發佈,我可以接受它 – 2014-10-24 10:03:57

回答

2

轉貼作爲一個答案:

不能在PDF直接從瀏覽器保存,因爲瀏覽器和JS代碼不知道它顯示PNG圖像關聯與特定的matplotlib數字 - 實際上,它根本不知道matplotlib。所有這一切都由運行代碼的Python內核進程處理。

然而,可以配置IPython的顯示SVG格式的數字,如所描述的in the docs。它似乎也有一個PDF選項,但我忘記了它的作用。

相關問題