代码之家  ›  专栏  ›  技术社区  ›  De Gninou

使用SeabornFig2Grid绘制多个海生图形时出错

  •  0
  • De Gninou  · 技术社区  · 6 年前

    我画了4个海生图形,我想用SeabornFig2Grid画一个图形 answer :

    #%%
    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'
    

    我的代码怎么了?

    1 回复  |  直到 6 年前
        1
  •  0
  •   ImportanceOfBeingErnest    6 年前

    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)