我的目的是在seaborn lmplot
中的特定坐标处添加补丁:
有没有向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))
我收到以下错误。
AttributeError: 'FacetGrid' object has no attribute 'add_patch'
我们可以在FacetGrid
添加补丁吗?
答案 0 :(得分:1)
lmplot
正如您所了解的那样,返回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))
请注意,如果您的FacetGrid
中只有一个Axes
个对象,则可以使用fg.ax