在 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