我正在尝试根据其LOF(局部离群值因子)为点着色。我的问题是某些点具有相同的坐标,因此被绘制在彼此的顶部。这样的例子可能是

df = pd.DataFrame({
'x' : [1,1],
'y' : [1,1],
 })

lof = pd.DataFrame({
'lof' : [2,1],
})


fig= plt.figure(figsize = (4,3), dpi = 200)
plt.scatter(df.x,df.y, s = 8, c =lof.lof)
plt.show()


从我的示例中可以看出,我在LOF得分不同的情况下有两个得分。首先绘制黄点,然后在黄点上绘制紫点,使其不可见。理想情况下,我希望散点图首先绘制LOF得分最低的点,最后绘制LOF得分最高的点,以便可见得分最高的点。

最佳答案

df['lof'] = lof
df.sort_values('lof', inplace=True)

plt.scatter(df.x, df.y, s=8, c=df.lof)

10-08 02:32