python - 使用 SeabornFig2Grid 绘制多个 Seaborn 图形时出错
问题描述
我画了 4 个 Seaborn 图形,我想使用 SeabornFig2Grid 将它们放在一个图形上,如本答案中所建议的那样:
#%%
fig5 = sns.regplot(plotdata['Average precipitation in depth (mm per year)'],plotdata['Lifetime risk of maternal death (%)'], data=plotdata)
fig5 = sns.set(font_scale=1.4)
fig5 = plp.annotate('r-square = {0:.2f}'.format(r_value**2), (0.05, 0.8), xycoords='axes fraction')
fig5 = plp.annotate('y = {0:.2f} + {0:.2f} x Average precipitation in depth (mm/year)'.format(intercept1, slope1), (0.05, 0.9), xycoords='axes fraction')
fig5 = plt.gcf()
fig5.set_size_inches(10, 5)
fig6 = ....
fig7 = ....
fig8 = ....
fig = plt.figure(figsize=(45,25))
gs = gridspec.GridSpec(2, 2)
mg0 = sfg.SeabornFig2Grid(fig5, fig, gs[0])
mg1 = sfg.SeabornFig2Grid(fig6, fig, gs[1])
mg2 = sfg.SeabornFig2Grid(fig7, fig, gs[2])
mg3 = sfg.SeabornFig2Grid(fig8, fig, gs[3])
gs.tight_layout(fig9)
#fig.savefig('fig9.jpg')
我通过修改为 SeabornFig2Grid 提供的示例代码编写了我的代码,但它返回以下错误:
File "<ipython-input-27-d3c8f9b3c3ea>", line 32, in <module>
mg0 = sfg.SeabornFig2Grid(fig5, fig9, gs[0])
File "C:\Anaconda\lib\site-packages\SeabornFig2Grid.py", line 17, in __init__
self._finalize()
File "C:\Anaconda\lib\site-packages\SeabornFig2Grid.py", line 52, in _finalize
plt.close(self.sg.fig)
AttributeError: 'Figure' object has no attribute 'fig'
我的代码有什么问题?
解决方案
sns.regplot
不返回图形,而是返回轴。因为regplot
您不需要使用SeabornFig2Grid
该类。相反,您可以直接将其绘制到图形的轴上。
fig = plt.figure(figsize=(45,25))
gs = gridspec.GridSpec(2, 2)
ax5 = fig.add_subplot(gs[0])
sns.regplot(..., ax=ax5)
推荐阅读
- jenkins - 从目录中将 jenkins 安装到 ICP(IBM Cloud Private)中后,它不可用
- android - 如何使用 javafxports 使 Android 应用程序全屏显示?
- asp-classic - 如何使用 ADO 命令和 Oracle 存储过程检索输出参数
- content-management-system - Taxonomy in multilingual environment
- google-chrome - 如何从 Chrome API 获取归档历史记录
- javascript - Edge mediaDevices 无效参数
- c# - 除了使用 ssis 将数据从 sql server 获取到 oracle 之外,还有其他方法吗?
- visual-studio-code - 为什么 VS Code 会破坏我的 Markdown 防护代码块?
- regex - 如何在 jmeter 中创建正则表达式提取器
- linux - 我正在尝试创建一个 payara 集群,但在创建远程节点期间出现错误