为每个唯一ID创建一个图

时间:2019-08-17 02:35:14

标签: python matplotlib

鉴于数据框df,我可以使用一些帮助来创建两个不同的散点图,一个用于x,y坐标,c值用于ID为“ aa”的颜色映射,另一个用于x,y坐标,则c值用于ID为“ bb”的颜色图。实际数据中有超过1000个唯一ID。

import numpy as np
import matplotlib.pyplot as plt
import pyodbc
import pandas as pd


#need to add the 
data = {'x':[2,4,6, 8,10, 12], 'y':[2,4,6, 8,10, 12], 'c': [.2,.5,.5,.7,.8,.9], 'id':['aa','aa','aa','bb','bb','bb']}

df = pd.DataFrame(data)

print (df)

for d in df.groupby(df['id']):

    plt.scatter(d[1][['x']],d[1][['y']], c=d[1][['c']], s=10, alpha=0.3, cmap='viridis')
    clb = plt.colorbar();
    plt.show()

返回此错误:ValueError:RGBA值应在0-1范围内

1 个答案:

答案 0 :(得分:1)

尝试一下:

df = pd.DataFrame(data)

for d in df.groupby(df['id']):
    plt.plot(d[1][['x','y']])
    plt.show()