从 seaborn 中保存情节
Saving plot from 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)
我收到这个错误
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'
我以前也保存过一些箱线图,用同样的代码,但是这次,它不起作用。
实际上你需要做的是:
- 从
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)
最简单的方法是使用
plt.savefig('svm_conf.png', dpi=400)
而不是
svm.savefig('svm_conf.png', dpi=400)
保存当前图形的命令是
plt.savefig()
因为这显然会引起一些混淆,所以这里是完整的工作示例:
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)
当我尝试保存使用 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)
我收到这个错误
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'
我以前也保存过一些箱线图,用同样的代码,但是这次,它不起作用。
实际上你需要做的是:
- 从
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)
最简单的方法是使用
plt.savefig('svm_conf.png', dpi=400)
而不是
svm.savefig('svm_conf.png', dpi=400)
保存当前图形的命令是
plt.savefig()
因为这显然会引起一些混淆,所以这里是完整的工作示例:
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)