向DBSCAN集群图添加动态图例

时间:2019-02-01 17:04:22

标签: matplotlib plot legend legend-properties

我正在遵循Gabriel Pierobon的DBSCAN方法在非参数分布中进行异常值检测。1

使用以下代码,我已经成功地从数据集中创建了聚类并绘制了结果,但它们缺少使观众能够辨别离群值和聚类的图例。

from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
from collections import Counter

x = idf.loc[(idf['RT']=="GR")&(idf['Y']==2018), ['MLIC','LLIC']]
x = x.fillna(value=0)

# Don't forget your feature scaling
scaler = StandardScaler()
x_scaled = scaler.fit_transform(x)

# Get after it
dbscan = DBSCAN()
clusters = dbscan.fit_predict(x_scaled)
print("Cluster memberships:\n{}".format(clusters))

# Plot it like the animal that you are
plt.scatter(x_scaled[:,0],x_scaled[:,1], c=clusters, cmap="plasma")
plt.xlabel('Feature 0')
plt.ylabel('Feature 1')

print(Counter(clusters))

但是,当我通过plt.legend(clusters)时,该图只是为似乎根本没有在图中显示的颜色生成了一个图例条目(可以掩埋,但是该簇中有19k到〜其他3个集群各100个。应该能够在图中看到它。)

自从我发布帖子以来,我还无法将绘图缩放到使x轴具有可视解释能力的大小(我认为需要更宽)。

关于a)建立完整的图例和b)扩展图本身的轴以提高可见性的任何想法?

0 个答案:

没有答案