Seaborn 中的补丁

1 python plot seaborn

我的目的是在seaborn的特定坐标处添加补丁lmplot

带补丁的预期seaborn图

有没有办法添加一个矩形/正方形补丁lmplot

我能够通过 打印出情节sns.lmplot()。但是当我尝试使用ax.add_patch()具有相关坐标的语句添加矩形面片时,出现错误。

#Sample code to generate lmplot  and add patch   
ax= sns.lmplot('A', 'B', hue="group", data=res_me,fit_reg=False, \
              palette="Set1",size=10, aspect=1, scatter_kws={"s": 100,"linewidths":2,"edgecolor":"black"})

ax.add_patch(patches.Rectangle((0.912, 0.72), 1.02, .802,fill=False,edgecolor='green',lw=3))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

AttributeError: 'FacetGrid' object has no attribute 'add_patch'
Run Code Online (Sandbox Code Playgroud)

那么我们可以添加补丁吗FacetGrid

Pau*_*l H 6

lmplot正如您所了解的,返回 a FacetGrid,它将其所有轴axes作为 2D numpy 数组存储在属性中。

所以你只需要做类似的事情:

fg = sns.lmplot('A', 'B', hue="group", data=res_me,fit_reg=False,
              palette="Set1",size=10, aspect=1,
              scatter_kws={"s": 100,"linewidths":2,"edgecolor":"black"})

fg.axes[0, 0].add_patch(patches.Rectangle((0.912, 0.72), 1.02, 
                        0.802,fill=False,edgecolor='green',lw=3))
Run Code Online (Sandbox Code Playgroud)

请注意,如果您FacetGrid只有一个Axes对象,您可以直接使用fg.ax