python 柱形图 不按规律排列_python – 在pandas / matplotlib条形图中对条形顺序进行排序...

什么是Pythonic / pandas在pandas中的列中排序“级别”以在条形图中给出特定的条形排序.

例如,给定:

import pandas as pd

df = pd.DataFrame({

'group': ['a', 'a', 'a', 'a', 'a', 'a', 'a',

'b', 'b', 'b', 'b', 'b', 'b', 'b'],

'day': ['Mon', 'Tues', 'Fri', 'Thurs', 'Sat', 'Sun', 'Weds',

'Fri', 'Sun', 'Thurs', 'Sat', 'Weds', 'Mon', 'Tues'],

'amount': [1, 2, 4, 2, 1, 1, 2, 4, 5, 3, 4, 2, 1, 3]})

dfx = df.groupby(['group'])

dfx.plot(kind='bar', x='day')

我可以生成以下一对图:

条形的顺序遵循行顺序.

重新排序数据的最佳方法是什么,以便条形图有Mon-Sun订购的条形码?

更新:这种垃圾解决方案有效 – 但它使用额外排序列的方式远非优雅:

df2 = pd.DataFrame({

'day': ['Mon', 'Tues', 'Weds', 'Thurs', 'Fri', 'Sat', 'Sun'],

'num': [0, 1, 2, 3, 4, 5, 6]})

df = pd.merge(df, df2, on='day')

df = df.sort_values('num')

dfx = df.groupby(['group'])

dfx.plot(kind='bar', x='day')

进一步推广:

是否有一个解决方案还可以修复“躲闪”条形图中的条形顺序:

df.pivot('day', 'group', 'amount').plot(kind='bar')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值