如何儲存matplotlib或seaborn繪製的影象(可以設定dpi)?
最近我製作了一個 seaborn視覺化教程,播放之後收到一位同學的提問:學了教程後知道怎麼用 seaborn 繪圖了,那麼,
繪圖之後如何儲存圖片呢?能不能在儲存時設定圖片的 dpi 值?
對於第一個問題,我之前用過的儲存圖片方法是:
截圖:使用Snipaste軟體或電腦截圖工具,詳細操作方法歡迎閱讀我的文章:Windows系統的幾種螢幕截圖方法 。
或者將執行之後(有繪圖結果)的 Jupyter Notebook 檔案存成 Markdown 文件:在選單欄依次選擇:File>Download as >Markdown(。md),生成的 Markdown 文件會帶有匯出的圖片。
但是,第二個問題需要設定 dpi 值,那麼, dpi 是什麼呢?
DPI ( Dots Per Inch,每英寸點數)是一個度量單位,指每英寸長度上可顯示或輸出點的數量。DPI 引數一般用於衡量印表機、滑鼠等裝置的解析度。具體來說,dpi 值越高,解析度越高,圖片就越清晰。
如何在儲存圖片時設定 dpi 值呢?
在網上查找了一下,發現要用到 matplotlib 中的 savefig 函式。使用語句
plt。savefig(“圖片名”,dpi=設定值)
可以儲存並匯出相應解析度的圖片(。 png格式),在 Jupyter Notebook 檔案所在的資料夾中就能看到。如果要儲存成其它格式,如 。svg, 。jpg 或 。pdf,把格式寫在檔名後即可,如:
plt。savefig(“圖片名。svg”,dpi=設定值)
。
下面我們透過一個具體的例子實踐一下:
首先引用相應的庫:
import
numpy
as
np
import
pandas
as
pd
import
matplotlib。pyplot
as
plt
import
seaborn
as
sns
%
matplotlib
inline
載入 seaborn 自帶的一個數據集,這個資料集記錄了企鵝的一些特徵,可以用於判斷企鵝種類:
penguin_df=sns。load_dataset(“penguins”)
然後,繪製資料集的變數“bill_length_mm”(企鵝的嘴長)的箱式圖,並且儲存圖片,設定 dpi 值為300:
sns
。
boxplot
(
data
=
penguin_df
,
x
=
“bill_length_mm”
)
plt
。
savefig
(
“boxplot01”
,
dpi
=
300
)
savefig 函式預設儲存圖片為 。png 格式,與
plt。savefig(“boxplot01。png”,dpi=300)
效果相同。
我們還可以將繪圖儲存為 。jpg 或 。svg 或 。pdf 格式,以及設定需要的dpi 值,比如:
sns
。
boxplot
(
data
=
penguin_df
,
x
=
“bill_length_mm”
)
plt
。
savefig
(
“boxplot01。jpg”
,
dpi
=
150
)
plt
。
savefig
(
“boxplot02。svg”
,
dpi
=
300
)
plt
。
savefig
(
“boxplot03。pdf”
,
dpi
=
600
)
下面這張圖就是上面的幾個輸出結果之一,哈哈,猜猜是哪一個呢?效果真不錯,你也快去試試吧!
使用savefig函式儲存的圖片
參考文章:
1。DPI:
https://
baike。baidu。com/item/DP
I/908073
2。plt。savefig() 函式:Python之matplotlib基礎