2016-12-21 24 views
-1

我有一个以下格式的熊猫数据框。我试图绘制基于ClusterAssigned这个数据,可能与不同颜色的0和1熊猫数据框中的值散点图

Distance ClusterAssigned 
    23  1 
    35  1 
    20  1 
    264  0 
    830  0 

我想这个代码,但似乎并没有得到完美的结果。

groups = dfprintscatter.groupby('ClusterAssigned') 

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 
ax.margins(0.05) 
for name, group in groups: 
     ax.plot(group.Distance, group.ClusterAssigned, marker='o', linestyle='', ms=5, label=name) 
ax.legend() 

plt.show() 
+1

你怎么认为完美的结果? – piRSquared

回答

3

您需要在matplotlib中使用scatter函数,并且不需要循环或执行任何分组。

x = np.arange(len(dfprintscatter)) 
y = dfprintscatter.Distance 
c = dfprintscatter.ClusterAssigned 
plt.scatter(x, y, c=c, marker='o') 

使用seaborn

import seaborn as sns 
sns.lmplot(x=np.arange(len(dfprintscatter)), y='Distance', hue='ClusterAssigned', fit_reg=False) 
+0

谢谢,这正是我真正想要的。我可以在plt.scatter中分配标签吗? – user3447653

+0

您必须循环才能使标签正确。使用海鸥会容易得多。 –

+0

我试着用seaborn,我得到的错误“regplot()得到了一个意想不到的关键字参数”色相“ – user3447653