【问题标题】:How to only plot the top n highest values in stacked bar chart in a pandas df?如何仅在 pandas df 的堆积条形图中绘制前 n 个最高值?
【发布时间】:2020-02-20 15:11:31
【问题描述】:

我有一个看起来像这样的 df:

  CD1  CD2  CD3   ...  FG1  FG2
0 3.8  2.9  0     ...  0.1  0.1
1 0.1  0    4.1   ...  5.2  0
# 35 columns and 2 rows

我使用以下方法绘制堆积条形图:

colors = plt.cm.jet(np.linspace(0, 1, 35))
df3.plot(kind='barh',stacked=True, figsize=(15,10),color=colors, width=0.08)

但我的问题是这会绘制所有 35 列但是我只想绘制具有最高值的 n 列,例如只为第 0 行绘制 CD1 和 CD2,为第 1 行绘制 CD3 和 FG1...

  CD1  CD2  CD3   ...  FG1  FG2
0 3.8  2.9  -     ...  -     -
1  -    -   4.1   ...  5.2   -

有没有办法做到这一点?

【问题讨论】:

    标签: python pandas stacked-area-chart


    【解决方案1】:

    如果我理解您的要求...看来您可以通过获取每列的 max 后跟 nlargest 来选择前 10 列来完成此操作:

    df.max().nlargest(10)
    

    结果应该是一个按列名索引的系列,因此应该很容易绘制该数据。

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 2017-04-11
      • 2018-06-05
      • 2012-09-17
      相关资源
      最近更新 更多