2016-12-21 3 views
-1

У меня есть фрейм данных pandas в следующем формате. Я пытаюсь построить эти данные, основываясь на ClusterAssigned, с различными цветами, вероятно, для 0 и 1.Scatter plot values ​​в pandas dataframe

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

Вы должны использовать scatter функцию в Matplotlib и нет необходимости в цикле или делать какие-либо группировки.

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

Использование Сиборн

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

Спасибо, это то, что я действительно искал. Можно ли назначать метки в plt.scatter? – user3447653

+0

Вам понадобится петля, чтобы получить правильные метки. Было бы намного проще использовать морской порт. –

+0

Я пробовал с морским дном, я получаю ошибку "regplot() получил неожиданный аргумент ключевого слова 'hue'" – user3447653