在 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