从seaborn保存情节

Rox*_*lia 6 python plot matplotlib seaborn

当我试图用seaborn保存我的情节时,像这样:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt
from pylab import savefig

array = [[100,0], 
        [33,67]]

df_cm = pd.DataFrame(array)

svm = sn.heatmap(df_cm, annot=True,cmap='coolwarm', linecolor='white', linewidths=1)

svm.savefig('svm_conf.png', dpi=400)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

AttributeError                            Traceback (most recent call last)
<ipython-input-71-5c0ae9cda020> in <module>()
----> 1 svm.savefig('svm_conf.png', dpi=400)

AttributeError: 'AxesSubplot' object has no attribute 'savefig'
Run Code Online (Sandbox Code Playgroud)

我以前用相同的代码保存了一些箱图,但这一次,它不起作用.

Ado*_*nis 17

实际上你需要做的是:

  • 从返回的对象中检索图形 sn.heatmap
  • 然后,只有保存图

见下面的最后两行:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt
from pylab import savefig

array = [[100,0], 
        [33,67]]

df_cm = pd.DataFrame(array)

svm = sn.heatmap(df_cm, annot=True,cmap='coolwarm', linecolor='white', linewidths=1)

figure = svm.get_figure()    
figure.savefig('svm_conf.png', dpi=400)
Run Code Online (Sandbox Code Playgroud)

  • `plt.savefig`在windows和IPython中运行良好.[见图片](https://i.stack.imgur.com/GApVb.png).我不知道你做了什么打破它,但至少没有理由声称它不会起作用. (2认同)

Imp*_*est 8

保存当前图形的命令是

plt.savefig()
Run Code Online (Sandbox Code Playgroud)

因为这显然会引起一些混乱,这里是完整的工作示例:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt

array = [[100,0], 
        [33,67]]

df_cm = pd.DataFrame(array)

svm = sn.heatmap(df_cm, annot=True,cmap='coolwarm', linecolor='white', linewidths=1)

plt.savefig('svm_conf.png', dpi=400)
Run Code Online (Sandbox Code Playgroud)