【发布时间】:2023-04-10 13:40:01
【问题描述】:
我创建了一个 seaborn 散点图并添加了一条趋势线。我有一些远离趋势线的数据点(请参阅以黄色突出显示的数据点),因此我想仅将数据标签添加到这些点,而不是添加到图表中的所有数据点。
有谁知道最好的方法是什么?
到目前为止,我已经找到了“如何为所有数据点添加标签”的答案(请参阅 this link),但这不是我的情况。
【问题讨论】:
我创建了一个 seaborn 散点图并添加了一条趋势线。我有一些远离趋势线的数据点(请参阅以黄色突出显示的数据点),因此我想仅将数据标签添加到这些点,而不是添加到图表中的所有数据点。
有谁知道最好的方法是什么?
到目前为止,我已经找到了“如何为所有数据点添加标签”的答案(请参阅 this link),但这不是我的情况。
【问题讨论】:
在您引用的问题的accepted answer 中,您可以看到他们向所有数据点添加标签的方式是循环遍历数据点并在轴上调用.text(x, y, string)。您可以找到此方法的文档here(seaborn 是在 matplotlib 之上实现的)。您必须为选定的点调用此方法。
在您的具体情况下,我不确切知道您想使用什么公式来查找异常值,但要从字面上获得超出您绘制的黄色矩形范围的异常值,您可以尝试以下操作:
for x,y in zip(xarr, yarr):
if x < 5 and y > 5.5:
ax.text(x+0.01, y, 'outlier', horizontalalignment='left', size='medium', color='black')
xarr 是您的 x 值,yarr 是您的 y 值,ax 是您调用 seaborn 时返回的轴。
【讨论】: