Графически отображая набор данных «советы» как совместный график, я хотел бы пометить 10 лучших выбросов (или топ-n выбросов) на графике их индексами из кадра данных «советы». Я вычисляю невязку (расстояние точки от средней линии) для нахождения выбросов. Пожалуйста, игнорируйте достоинства этого метода обнаружения выбросов. Я просто хочу аннотировать график в соответствии со спецификацией.
import seaborn as sns
sns.set(style="darkgrid", color_codes=True)
tips = sns.load_dataset("tips")
model = pd.ols(y=tips.tip, x=tips.total_bill)
tips['resid'] = model.resid
#indices to annotate
tips.sort_values(by=['resid'], ascending=[False]).head(5)
tips.sort_values(by=['resid'], ascending=[False]).tail(5)
%matplotlib inline
g = sns.jointplot("total_bill", "tip", data=tips, kind="reg",
xlim=(0, 60), ylim=(0, 12), color="r", size=7)
Как аннотировать 10 лучших выбросов (наибольшие 5 и наименьшие 5 остатков) на графике по значению индекса каждой точки (наибольшие остатки), чтобы иметь это: