如何使用Python中的Seaborn保存一个图表

16

我有一个Pandas数据帧并想将图形保存为PNG文件。然而,似乎有些东西不像应该的那样工作。这是我的代码:

import pandas
import matplotlib.pyplot as plt
import seaborn as sns

sns.set(style='ticks')

df = pandas.read_csv("this_is_my_csv_file.csv")
plot = sns.distplot(df[['my_column_to_plot']])
plot.savefig("myfig.png")

而我遇到了这个错误:

AttributeError: 'AxesSubplot' object has no attribute 'savefig'
3个回答

23

您可以像这样保存任何seaborn图。

假设您想创建一个小提琴图以显示按性别分布的薪资。您可以像这样做,并使用get_figure方法进行保存。

ax = sns.violinplot(x="Gender", y="Salary", hue="Degree", data=job_data)
#Returns the :class:~matplotlib.figure.Figure instance the artist belongs to
fig = ax.get_figure()
fig.savefig('gender_salary.png')

15

您可以使用plt.savefig,因为在调用plt.show()时,您的图片将出现。


1
@Tasos 可能是他们创建了一个 Figure 对象,使用 fig = plt.Figure()。然后你可以使用 fig.savefig() 保存这个图像。 - Mathias711

2

使用plt.savefig('yourTitle.png')命令保存图片。

如果您想传递一个变量:

plt.savefig("yourTitleDataSet{0}.png".format(dataset))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接