首页 > 解决方案 > 散点图颜色点Python

问题描述

我正在尝试根据它们的 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 得分最高的点,这样得分最高的点就可见。

标签: pythonpandasmatplotlibplot

解决方案


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

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

推荐阅读