想要一个带有气泡大小(或颜色)的散点图(或热图)来显示pandas中每个组的大小。
例如,pandas DataFrame中的数据:
df = pd.DataFrame(np.random.randint(10, size=(100, 2)), columns=['first_col', 'second_col'])
df.groupby(['first_col', 'second_col']).size()
在散点图(或热图)中,x轴为first_col
,y轴为second_col
,气泡大小等于.size()
的结果。
如果答案可以处理超过离散数的连续数,那会更好。在这种情况下,绘图仪可能需要设置 bin大小。
答案 0 :(得分:1)
好吧,自己弄清楚了。
df = pd.DataFrame(np.random.randint(10, size=(1000, 2)), columns=['first_col', 'second_col'])
index = df.groupby(['first_col', 'second_col']).size().index
x = index.map(lambda t: t[0])
y = index.map(lambda t: t[1])
areas = df.groupby(['first_col', 'second_col']).size()
plt.scatter(x, y, s=areas * 3, alpha=0.5)
不知道如何以更加坎坷的方式提取x坐标和y坐标。