【问题标题】:Pandas bar plot does not show error bars with .unstack()Pandas 条形图不显示带有 .unstack() 的误差线
【发布时间】:2019-01-18 01:05:18
【问题描述】:

我已经构建了一个 MultiIndex 列数据框并将其绘制在分组的水平条中。分组在 MultiIndex 级别 1 上,我已经用 unstack() 解决了这个问题。 我想将 xerr 条添加到绘图中,但它没有显示。

这是数据框:

    level_0: observer_1           observer_2              observer_3
    level_1: meas1 meas2 meas3    meas1 meas2 meas3       meas1 meas2 meas3
index: 
val          3      1     5        2    0.5    4           2     2    4.5
std          0.1    0.2   0.01     0.15  0.01  0.2         0.03  0.1  0.01   

这是我的代码和情节:

dfSTD = df.loc['std',:].to_frame()
dfVal = df.loc['val',:].to_frame()
dfVal.unstack(level=0).plot(kind='barh', ax=axis[0], xerr=dfSTD.unstack(level=0))

【问题讨论】:

  • 你能添加一些代码来创建一个我们可以玩的虚拟df吗?另请参阅:pandas.pydata.org/pandas-docs/stable/… 为什么你的 std dev 被转置?
  • @Evan 我已阅读此文档。我认为由于 unstack() 某些东西没有连接。转置是因为否则python会抛出一个错误,即尺寸不匹配并接受转置。

标签: pandas matplotlib


【解决方案1】:

显然,必须从数据框中获取值,类似于此处的这种情况: Plotting error bars

所以我正在寻找的绘图命令是这样的:

dfVal.unstack(level=0).plot(kind='barh', ax=axis[0], xerr=dfSTD.unstack(level=0).values.T)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多