当前位置: 首页 > 知识库问答 >
问题:

如何将Seaborn绘图保存到文件中

农存
2023-03-14

我尝试了以下代码(test\u seaborn.py):

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')
import seaborn as sns
sns.set()
df = sns.load_dataset('iris')
sns_plot = sns.pairplot(df, hue='species', size=2.5)
fig = sns_plot.get_figure()
fig.savefig("output.png")
#sns.plt.show()

但我得到了这个错误:

  Traceback (most recent call last):
  File "test_searborn.py", line 11, in <module>
    fig = sns_plot.get_figure()
AttributeError: 'PairGrid' object has no attribute 'get_figure'

我期望最终的输出。png将存在,并如下所示:

我如何解决这个问题?


共有3个答案

司徒俊良
2023-03-14

2019年搜索者更少的行:

import matplotlib.pyplot as plt
import seaborn as sns

df = sns.load_dataset('iris')
sns_plot = sns.pairplot(df, hue='species', height=2.5)
plt.savefig('output.png')

更新说明:size已更改为height

白芷阳
2023-03-14

上面的一些解决方案对我不起作用。。图属性在我尝试该属性时未找到,并且无法使用。直接保存图()。然而,所起的作用是:

sns_plot.figure.savefig("output.png")

我是一个较新的Python用户,所以我不知道这是否是由于更新。我想提一下,以防其他人遇到和我一样的问题。

岳阳飙
2023-03-14

建议的解决方案与Seaborn 0.8不兼容。1.

给出以下错误,因为Seborn接口已更改:

AttributeError: 'AxesSubplot' object has no attribute 'fig'
When trying to access the figure

AttributeError: 'AxesSubplot' object has no attribute 'savefig'
when trying to use the savefig directly as a function

以下调用允许您访问地物(Seaborn 0.8.1兼容):

swarm_plot = sns.swarmplot(...)
fig = swarm_plot.get_figure()
fig.savefig(...) 

如前面的回答所示。

更新:我最近使用seaborn的PairGrid对象生成了一个类似于本例的绘图。在这种情况下,因为GridPlot不是一个类似于sns的plot对象。Swarmlot,它没有get_figure()函数。可以通过以下方式直接访问matplotlib图形:

fig = myGridPlotObject.fig

就像之前在本帖其他帖子中建议的那样。

 类似资料:
  • 问题内容: 我有以下代码: 制作饼图。然后,我要做的就是将其保存到文件中。但是为什么失败了? 我收到此错误: 问题答案: 那么是一个numpy数组,因为for的返回类型是一个对象的numpy数组。

  • 以及如何将指令保存为相同格式的文本文件?

  • 问题内容: 我想将HtmlUnit cookie保存到一个文件,然后在下一次运行时从该文件中加载它们。我怎样才能做到这一点?谢谢。 问题答案:

  • 问题内容: 我想将一个对象保存到文件中,然后轻松地从文件中读取它。作为一个简单的示例,可以说我有以下3d数组: 是否有一个简单的Ruby API,无需编程解析器即可解释文件中的数据,就可以用来实现此目的?在示例中,我给出了一个简单的例子,但是随着对象变得越来越复杂,使对象持久化变得很烦人。 问题答案: 参见元帅:http : //ruby- doc.org/core/classes/Marshal

  • 问题内容: 在ipython Notebook中,首先创建一个pandas Series对象,然后通过调用实例方法.hist(),浏览器将显示该图。 我想知道如何将该图形保存到文件中(不是通过右键单击另存为,而是脚本中所需的命令)。 问题答案: 使用方法,如下所示: 它不必以结尾结尾,有很多选择。查看文档。 或者,您可以使用该接口,并仅作为函数调用来保存最近创建的图形:

  • 问题内容: 如何保存/加载类所在的文件?我之前没有该位置的物理路径,而是想动态地找到该文件。 我想加载一个XML文件并对其进行读写,但我不确定该如何解决。 问题答案: 在一般情况下,您不能。从类加载器加载的资源可以是任何东西:目录中的文件,嵌入jar文件中的文件,甚至可以通过网络下载。