首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以使用Python、Pandas和Matplotlib对条形图进行分组

难以使用Python、Pandas和Matplotlib对条形图进行分组
EN

Stack Overflow用户
提问于 2019-03-12 06:56:39
回答 1查看 209关注 0票数 1

我很难让plot.bar按照我在数据框中分组的方式将条形图分组在一起。数据帧正确地返回分组的数据,但是,条形图为数据帧中的每一行提供了单独的条形图。理想情况下,下面代码中的所有内容都应该将每个部门的3-6个条形图组合在一起(部门X应该将每个类型的条形图组合在一起,然后计算true/false作为Y轴)。

数据帧:

代码语言:javascript
复制
dname             Type  purchased
Dept X       0     False        141
                   True         270
             1     False       2020
                   True        2604
             2     False       2023
                   True        1047

代码:

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2019-03-12 10:03:16

如果没有一个更具可重复性的例子,我就不能确定,但在绘制之前,请尝试在MultiIndex of dx的最内层执行unstack

代码语言:javascript
复制
dx.unstack().plot.bar(x='dname', y='widgetid', rot=90)

我希望这是可行的,因为在绘制DataFrame时,每一列都会变成一个图例条目,每一行都会变成横轴上的一个类别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55111604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档