【发布时间】:2020-09-27 00:16:45
【问题描述】:
我的第一个真正的 Python 数据科学项目几乎完成了。但是,我似乎无法弄清楚最后一件事。我有以下代码为我的 PCA 和 K 均值聚类算法创建图:
y_axis = passers_pca_kmeans['Component 1']
x_axis = passers_pca_kmeans['Component 2']
plt.figure(figsize=(10,8))
sns.scatterplot(x_axis, y_axis, hue=passers_pca_kmeans['Segment'], palette=['g','r','c','m'])
plt.title('Clusters by PCA Components')
plt.grid(zorder=0,alpha=.4)
texts = [plt.text(x0,y0,name,ha='right',va='bottom') for x0,y0,name in zip(
passers_pca_kmeans['Component 2'], passers_pca_kmeans['Component 1'], passers_pca_kmeans.name)]
adjust_text(texts)
plt.show
- 我终于得到了正确的代码来使用
adjustText注释这些点,但是我的情节有太多的点来标记它们;看起来到处都是乱七八糟的文字。 - 我想根据
'Segment'列中的值对散点图进行注释。- 此列中的值是我的四个集群的名称
'first'、'second'、'third'、'fourth'。
- 此列中的值是我的四个集群的名称
- 如何更改我的
adjustText代码以仅注释'Segment'='first'所在的点?- 这是
np.where的情况吗?
- 这是
【问题讨论】:
-
This answer 展示了如何在数据点附近单独添加标签。在示例中,它们会遍历所有点,但您不必这样做。
-
哦,等等,您正在使用 Seaborn。但它可能仍然有效,我不确定。
-
这就是我现在所处的位置。但是,标记所有数据点太混乱了。我想根据数据框中的列值标记某些数据点。
-
副本中的答案使用整个数据框显示,您只需 Boolean select 您想要的点并传递它而不是整个数据框。
标签: python pandas dataframe matplotlib scatter-plot