Matplotlib簡介和pyplot的簡單使用——輸出eps格式圖像


最開始使用Matplotlib,一是因為它不需要像Matlab一樣花很長時間啟動一個圖形界面,二是它可以直接保存為.eps格式。
在圖像顯示出來之后,在左下角有幾個按鈕,最后一個就是保存,在保存的對話框選擇.eps格式即可。另一種方式就是在程序里面使用pyplot.savefig(name,format="eps"),可以用format指定格式為eps,也可以不使用format,而是寫在name里面,它會自動從name里面找到擴展名來決定格式。
雖然這樣得到了.eps格式的圖像,但是它的周圍有空白的地方,有兩種方法來去掉這些空白,一種方法是使用gsview,在windows上,一般會使用這個工具,另一種方法是使用epstool(http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm),我使用的代碼是

print target
tp0 = "tp0" + target
tp1 = "tp1" + target
plt.savefig(tp0,dpi=160)
cmd0 = "epstool -b -t4 --output %s %s" %(tp1,tp0)
cmd1 = "epstool -p --output %s %s" %(target,tp1)
cmd2 = "rm tp*"
os.system(cmd0)
os.system(cmd1)
os.system(cmd2)

一般情況下,輸出的eps文件都可以用的,但有時候卻會出現問題,比如在latex編譯得到的pdf文件里圖像只有一部分,或者全是空白等,這主要問題是eps格式里面的boudningbox有負值,這是一個比較麻煩的問題,目前還沒有找到好的解決辦法,雖然epstool說是可以調整,重新計算boundingbox,但是依然會有負值,暫時的解決辦法就是將圖片縮小,比如以前是figsize=(16,8),縮小為figsize=(9,4.5)。目前測試的結果就是寬度超過10,boundingbox就會出現負值,而比9大一點還是可以的,一般取9就可以了,縮小的時候,字體也要相應縮小,不然使用默認字體,就出出現字相對圖像太大的情況。
之前提到了,可以設置fig的boundingbox,但沒有深入研究,有興趣的可以繼續探討。

至此,對Matplotlib的介紹就結束了,以后或許會用到新的東西,到時候在進行介紹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM