Добавить текстовую аннотацию к seaborn lmplot - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать semporn 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 голосов
/ 15 января 2019

Проблема в том, что seaborn.regplot (используется на сайте, на который вы ссылаетесь) возвращает объект осей matplotlib, который позволяет вам использовать функцию text. Однако seaborn.lmplot возвращает 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

Отсюда вы можете использовать функцию, как показано в ссылке

...