向seaborn lmplot添加文本注释

时间:2019-01-15 02:49:28

标签: python plot seaborn

我正在尝试为聚类结果创建seaborn lmplot,数据示例如下所示:

    ID   CA     IP  clusters
    38  10.3    5.6   1
    59  10.4    6.1   0
    64  10.0    6.6   1
    35  10.6    5.6   1
    54  10.6    5.6   1
    60  10.2    8.2   1

有两个集群(集群0和集群1),我想在每个散点图上根据“ ID”列显示“ ID” 。像seaborn regplot一样尝试了添加文本的功能,但是出现错误,提示“ FacetGrid没有文本功能”。

海洋情节代码:

ax = sns.lmplot('CA', 'IP', 
     data=df_tr, 
     fit_reg=False, 
     hue="clusters",  palette="Set1",
     scatter_kws={"marker": "D", "s": 50})

plt.title('Calcium vs Phosporus')
plt.xlabel('CA')
plt.ylabel('IP')

情节:

enter image description here

1 个答案:

答案 0 :(得分:2)

问题是seaborn.regplot(在您链接到的站点中使用)返回一个matplotlib axes对象,该对象允许您使用text函数。但是,seaborn.lmplot返回FacetGrid。

因此,您需要获取Facetgrid的轴,您可以使用

fgrid = sns.lmplot(...)
ax = fgrid.axes[0,0]  # fgrid.axes return an array of all axes in the figure, so we index the array

然后您可以在此处使用链接中所示的功能