【问题标题】:How can i graph this as a stacked bar chart?我如何将其绘制为堆积条形图?
【发布时间】:2018-04-05 18:07:04
【问题描述】:

我在下面有这段代码,它完全按照我想要的方式生成我的数据框,但我似乎无法通过分组条形图绘制它,

我希望 X 轴和 Y 轴上的部门已完成,其余信息在顶部

import pandas as pd
import matplotlib

data = pd.read_excel('audit.xls', skiprows=2, index_col = 'Employee Department')
data.rename(columns = {'Curriculum Name':'Curriculum','Organization Employee Number':'Employee_Number', 'Employee Name': 'Employee','Employee Email':'Email', 'Employee Status':'Status', 'Date Assigned':'Assigned','Completion Date':'Completed'}, inplace=True)
data.drop(['Employee_Number', 'Employee','Assigned', 'Status', 'Manager Name', 'Manager Email', 'Completion Status','Unnamed: 1', 'Unnamed: 5', 'Unnamed: 6'], axis=1, inplace=True)

new_data = data.query('Curriculum ==["CARB Security Training","OIS Support Training","Legal EO Training"]')
new_data2 = new_data.groupby('Employee Department').count().eval('Remaining = Email - Completed', inplace=False)

new_data2

我假设我需要以某种方式将其转换为数据透视表,因为它在 excel 中就是这样

【问题讨论】:

  • 是否需要使用 matplotlib 可视化,或者是否可以使用 web 框架?如果是这样:我会说尝试将其放入ChartJSC3 中,这是D3 的包装器。在这两种情况下,您都需要将它们转换为 JSON 格式...
  • 什么类型的例子?
  • 欢迎来到 SO。不幸的是,这不是教程服务或代码编写服务。请花时间阅读How to Ask 及其包含的链接。通常我会从查看文档中的示例开始,对于 matplotlib,我会尝试在 the gallery 中找到具有我想要的功能的内容,然后查看创建它的代码。

标签: python pandas matplotlib


【解决方案1】:

你有没有尝试过这样的事情:new_data2[['Completed','Remaining']].plot.bar(stacked=True)

以下示例适用于我:

df = pd.DataFrame(np.arange(1,10).reshape(3,3), columns=['Email', 'Completed', 'Remaining'], index=['A', 'B', 'C'])
df[['Completed', 'Remaining']].plot.bar(stacked=True)

【讨论】:

  • new_data2 没用,报错,max_open_warning,runtimewarning
  • max_open_warning 通常是因为你生成了太多的数字。你的代码生成了多少个数字?
  • 什么意思?我的excel文档中只有大约1600行
  • @davidjbeiler 我的意思是你生成了太多的 matplotlib 图形。检查thisthis。如果您使用 jupiter notebook 清除内存,我认为您应该重新启动内核。
  • 谢谢,我的输出到 json 很好,但是如何使用 chartjs 将它分配给轴?
猜你喜欢
  • 2018-06-05
  • 2012-09-17
  • 2021-12-27
  • 2016-05-24
  • 2011-10-14
  • 1970-01-01
相关资源
最近更新 更多