我有以下格式的pandas数据帧。我试图根据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()
答案 0 :(得分: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)