首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过dataframe从组创建条形图

通过dataframe从组创建条形图
EN

Stack Overflow用户
提问于 2017-10-08 02:26:56
回答 1查看 198关注 0票数 0
  • 我已经将数据转换到下面的组中,并在下面生成输出
  • 我不知道如何提取子级别的数据来创建两个表。一个做空头,另一个打电话。
    • 其中x轴=罢工
    • Y轴= oi和
    • 我想使用matplotlib将两个条形图叠加为一个。像附图一样

有什么指针或者更好的方法从下面的输出中创建这个图表?

代码语言:javascript
复制
df_OI = df[['oi','strike','type','expiry']].groupby([pd.Grouper(freq='D'),'strike','type','expiry']).agg(['sum'])

Created                                     oi
                                    sum
datetime   strike type expiry          
2017-09-29 130.0  PUT  2017-10-06    12
           145.0  PUT  2017-10-06    21
           147.0  PUT  2017-10-06     1
           149.0  PUT  2017-10-06     2
           150.0  CALL 2017-10-06     1
                  PUT  2017-10-06   111
           152.5  CALL 2017-10-06    12
                  PUT  2017-10-06   100
           155.0  CALL 2017-10-06    10
                  PUT  2017-10-06    66
           157.5  CALL 2017-10-06     8
                  PUT  2017-10-06    29
           160.0  CALL 2017-10-06    21
                  PUT  2017-10-06  1405
           162.5  CALL 2017-10-06    14
                  PUT  2017-10-06   327
           165.0  CALL 2017-10-06    56
                  PUT  2017-10-06  2383
           167.5  CALL 2017-10-06    12
                  PUT  2017-10-06  2804
           170.0  CALL 2017-10-06   354
                  PUT  2017-10-06  1945
           172.5  CALL 2017-10-06   438
                  PUT  2017-10-06  3022
           175.0  CALL 2017-10-06  3373
                  PUT  2017-10-06  2093
           177.5  CALL 2017-10-06  1688
                  PUT  2017-10-06  1201
           180.0  CALL 2017-10-06  8241
                  PUT  2017-10-06  2269
           182.5  CALL 2017-10-06  2152
                  PUT  2017-10-06   219
           185.0  CALL 2017-10-06  4008
                  PUT  2017-10-06   469
           187.5  CALL 2017-10-06  2006
                  PUT  2017-10-06   270
           190.0  CALL 2017-10-06  1354
                  PUT  2017-10-06    37
           192.5  CALL 2017-10-06   484
           195.0  CALL 2017-10-06   377
           197.5  CALL 2017-10-06    31
           200.0  CALL 2017-10-06   109
                  PUT  2017-10-06     3
           202.5  CALL 2017-10-06     5
           205.0  CALL 2017-10-06     5
EN

回答 1

Stack Overflow用户

发布于 2017-10-08 06:43:55

因为我有两个用bar绘制的列,所以我的总空间是2。因此,我使用width=2使两个条形图的宽度为2。

代码语言:javascript
复制
df.reset_index().set_index(['strike', 'type'])['sum'].unstack() \
  .plot.bar(width=2, alpha=.5, figsize=(10, 4), ec='white')

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

https://stackoverflow.com/questions/46626992

复制
相关文章

相似问题

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