在 Python 中儲存 Seaborn 影象

Manav Narula 2021年4月29日
在 Python 中儲存 Seaborn 影象

在本教程中,我們將討論如何在外部檔案中儲存一個 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')

我們可以指定其他檔案格式,例如 jpegpng 等。我們還可以將圖以非影象格式(例如 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 Narula avatar Manav Narula avatar

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