如何使用group by使用DataFrame.hist()绘制直方图?
我有一个5列的数据框:“a”、“B”、“C”、“D”和“组”
课程分为两组:“是”和“否”
使用:
df.hist()
我得到了4列中每列的历史记录
现在,我想得到相同的4个图形,但带有蓝色条(group=“yes”)和红色条(group=“no”)
我尝试了这个,但没有成功:
df.hist(by=“group”)
使用Seaborn
如果您愿意使用Seaborn,则可以使用Seaborn.FaceGrid轻松绘制包含多个子地块和每个子地块内多个变量的绘图
将numpy作为np导入;np.随机种子(1)
作为pd进口熊猫
导入seaborn作为sns
将matplotlib.pyplot作为plt导入
df=pd.DataFrame(np.random.randn(300,4),columns=list(";ABCD";)
df[“group”]=np.random.choice([“yes”和“no”,p=[0.32,0.68],size=300)
df2=pd.melt(df,id'u vars='group',value'u vars=list(";ABCD";),value'u name='value')
bin=np.linspace(df2.value.min(),df2.value.max(),10)
g=sns.FaceGrid(df2,col=“variable”,色调=“group”,调色板=“Set1”,col_wrap=2)
g、 映射(plt.hist,'value',bins=bins,ec=k)
g、 轴[-1]。图例()
plt.show()