我尝试了以下代码(test_seborn .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'
我希望最终的output.png会存在,看起来像这样:
我该如何解决这个问题?
下面的调用允许您访问图(兼容Seaborn 0.8.1):
swarm_plot = sns.swarmplot(...)
fig = swarm_plot.get_figure()
fig.savefig("out.png")
正如之前在这个答案中看到的。
建议的解决方案与Seaborn 0.8.1不兼容。它们给出以下错误,因为Seaborn接口已经更改:
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的PairGrid对象来生成类似于本例中的图形。
在这种情况下,由于GridPlot不是一个plot对象,例如,sns。它没有get_figure()函数。
可以通过以下方式直接访问matplotlib图:
fig = myGridPlotObject.fig
下面的调用允许您访问图(兼容Seaborn 0.8.1):
swarm_plot = sns.swarmplot(...)
fig = swarm_plot.get_figure()
fig.savefig("out.png")
正如之前在这个答案中看到的。
建议的解决方案与Seaborn 0.8.1不兼容。它们给出以下错误,因为Seaborn接口已经更改:
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的PairGrid对象来生成类似于本例中的图形。
在这种情况下,由于GridPlot不是一个plot对象,例如,sns。它没有get_figure()函数。
可以通过以下方式直接访问matplotlib图:
fig = myGridPlotObject.fig