使用matplotlib,python 2.7

问题描述:

表示除x,y之外的列我想对某些数据进行模拟,并且想针对不同类别显示不同颜色的点。我有三列,我使用的两列是x,y,我想使用第三列,其中有两个类别在我的情节中反映出来。使用matplotlib,python 2.7

y = np.array(q) 
x = np.array(p) 

fig = plt.figure(figsize = (18,18)) 
plt.show() 

for t in range(6000): 

ax = fig.add_subplot(2,1,1) 
for i in s[t:t+4]: # s is a list that contains the third column 
    if i == 'Match': 
     ax.plot(x[i], y[i], 'bs') 
    else: 
     ax.plot(x[i],y[i],'ro') 
+1

一个你能请张贴代码为您最好的尝试?谢谢 – lrnzcig

+0

@Irnzcig:请参阅上面的代码,我认为groupby可以帮助,但我不知道如何在这里使用它。 – nezz

有很多方法可以做到这一点,这里是用熊猫

#generate data 
df = pd.DataFrame(np.random.random(size=(100,2)), columns=['x','y']) 
df.loc[:,'cat'] = ['Match' if np.random.randint(0,2)==1 else '-' for i in range(100) ] 

plt.plot(df.loc[df.cat=='Match','x'],df.loc[df.cat=='Match','y'],'bs') 
plt.plot(df.loc[df.cat!='Match','x'],df.loc[df.cat=='Match','y'],'ro') 
+0

谢谢@Diziet朝日! – nezz