如何使用group by在Python中绘制包含两列的条形图

如何使用group by在Python中绘制包含两列的条形图,python,matplotlib,Python,Matplotlib,我得到的数据是这样的 color type price Y/N 1 R A H Y 2 G B L N 3 B A H N 4 R C L N 5 G B H Y 6 R A H Y 7 B B H Y 我想用每列drow barchar并按Y/N列分组 像这

我得到的数据是这样的

  color type  price     Y/N
1   R   A       H       Y
2   G   B       L       N
3   B   A       H       N
4   R   C       L       N
5   G   B       H       Y
6   R   A       H       Y
7   B   B       H       Y
我想用每列drow barchar并按Y/N列分组

像这样的

  color type  price     Y/N
1   R   A       H       Y
2   G   B       L       N
3   B   A       H       N
4   R   C       L       N
5   G   B       H       Y
6   R   A       H       Y
7   B   B       H       Y
对不起,这张照片,希望你能理解:) 这是一个简单的方法来画这样的图片,而不计算每种不同类型的数字。
顺便说一句,如果不是二进制类别,例如Y/N列有4个不同的值,如何进行绘制。

您可以尝试以下方法:

for i in df.columns[:-1]:
    df.groupby([i,'Y/N'])[i].size().unstack().plot.bar()
输出:


非常感谢,这就是我要找的。只是一个补充,如何对索引进行排序?
df.sort\u index()