python-3.x - 如何对已经分组的栏进行分组?
问题描述
假设我的 pandas 数据框如下所示:
import pandas as pd
df=pd.DataFrame({'run-1a':[0.3, 0.3, 0.4, 0.4], 'run-1b':[0.3, 0.3, 0.4, 0.5],"run-2a":[0.7, 0.9, 0.8, 0.9],"run-2b":[0.2, 0.3, 0.5, 0.5], "Person":["person1","person2","person3","person4"]})
df
现在我用它做了一个酒吧:
import matplotlib.pyplot as plt
color_list = ['b','lightskyblue', 'g','lightgreen']
ax = df.plot(x='Person',y=['run-1a','run-1b','run-2a','run-2b'], kind='bar', color=color_list)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.xticks(rotation="horizontal")
plt.show()
结果如下所示:
但是,我想为每个人将run-1a 与 run1b和run2a 与 run2b 分组。当我搜索一些解决方案时,我只发现如何使分组条看起来像我上面的情节,我不需要。
这是我的情节应该是什么样子的草图:
请问有没有一个选项如何为每个人分组?非常感谢你。
解决方案
如果我理解正确,您可以在其他条之间添加空条,这样您将获得 4 列,其中每两个条是分开的。
import pandas as pd
df=pd.DataFrame({'':[0,0,0,0],'run-1a':[0.3, 0.3, 0.4, 0.4], 'run-1b':[0.3, 0.3, 0.4, 0.5],"run-2a":[0.7, 0.9, 0.8, 0.9],"run-2b":[0.2, 0.3, 0.5, 0.5], "Person":["person1","person2","person3","person4"]})
color_list = ['b','lightskyblue','w', 'g','lightgreen']
ax = df.plot(x='Person',y=['run-1a','run-1b','','run-2a','run-2b'], kind='bar', color=color_list)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.xticks(rotation="horizontal")
plt.show()
推荐阅读
- stripe-payments - 配置 Stripe 订阅
- c# - 使用正则表达式匹配 C# 搜索字符串模式
- crystal-reports - Crystal Reprots 2013 迁移到新服务器
- ffmpeg - 带 Alpha 通道的自适应视频编码
- r - 将多个excel文件作为一个数据框/表读取
- c# - Angular 9 http.delete 返回不支持的媒体 415
- c# - 使用 HoloLens 2 获取空间坐标系的正确方法
- android - 在 Room Kotlin 中插入改造响应
- asp.net-core - 如何在 ASP.Net Core 应用程序中向 Azure AD 身份验证用户添加自定义声明?
- android - 在 Android Studio 中运行单元测试时,类覆盖率和行覆盖率有什么区别?