在 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")
作者: 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