在 Python 中儲存 Seaborn 影象
Manav Narula
2021年4月29日
在本教程中,我們將討論如何在外部檔案中儲存一個 seaborn 影象。
我們將使用 matplotlib.pyplot.savefig()
函式,該函式可以將其匯出到外部檔案。
我們需要在函式本身中指定檔名及其格式和檔案路徑。
例如,
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2]})
sns.lineplot(data = df)
plt.savefig('filename.png')
我們可以指定其他檔案格式,例如 jpeg
、png
等。我們還可以將圖以非影象格式(例如 PDF)儲存。
我們還可以使用不同的引數來自定義最終圖形。
例如,我們可以在函式中指定 dpi
引數。dpi
表示每英寸點數,因此更高的值將導致最終影象的解析度更高。
例如,
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2]})
sns.lineplot(data = df)
plt.savefig('filename.png', dpi = 300)
如果需要,可以使用 orientation
引數更改方向。方向預設為 portrait
。
在下面的程式碼中,我們將最終圖形儲存為橫向。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2]})
sns.lineplot(data = df)
plt.savefig('filename.png', orientation = 'horizontal')
可用的其他引數包括 transparent
, frameon
, facecolor
, edgecolor
,為最終匯出的圖形提供更多自定義設定。
請注意,對於最新版本的 seaborn,直接使用 savefig()
函式可能會在某些繪圖上產生錯誤。在這種情況下,我們還應該使用 get_figure()
函式。此函式獲取所需圖形的例項,然後我們可以使用 savefig()
函式將其匯出。
下面的程式碼演示了這一點。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8],
"Day 2" : [1,2,8,4,3,9,5,2]})
splot = sns.lineplot(data = df)
sfig = splot.get_figure()
sfig.savefig('filename.png', orientation="landscape")
Author: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn