我很难让plot.bar按照我在数据框中分组的方式将条形图分组在一起。数据帧正确地返回分组的数据,但是,条形图为数据帧中的每一行提供了单独的条形图。理想情况下,下面代码中的所有内容都应该将每个部门的3-6个条形图组合在一起(部门X应该将每个类型的条形图组合在一起,然后计算true/false作为Y轴)。
数据帧:
dname Type purchased
Dept X 0 False 141
True 270
1 False 2020
True 2604
2 False 2023
True 1047代码:
import psycopg2
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
##connection and query data removed
df = pd.merge(df_departments[["id", "dname"]], df_widgets[["department", "widgetid", "purchased","Type"]], how='inner', left_on='id', right_on='department')
df.set_index(['dname'], inplace=True)
dx=df.groupby(['dname', 'Type','purchased'])['widgetid'].size()
dx.plot.bar(x='dname', y='widgetid', rot=90)

发布于 2019-03-12 10:03:16
如果没有一个更具可重复性的例子,我就不能确定,但在绘制之前,请尝试在MultiIndex of dx的最内层执行unstack:
dx.unstack().plot.bar(x='dname', y='widgetid', rot=90)我希望这是可行的,因为在绘制DataFrame时,每一列都会变成一个图例条目,每一行都会变成横轴上的一个类别。
https://stackoverflow.com/questions/55111604
复制相似问题