Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a pandas dataframe in the following format. I am trying to plot this data based on ClusterAssigned, with probably different colors for 0 and 1.

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

I tried with this code but does not seem to yield perfect results.

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()
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
169 views
Welcome To Ask or Share your Answers For Others

1 Answer

You need to use the scatter function in matplotlib and there is no need to loop or do any grouping.

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

Using seaborn

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...