如何仅绘制熊猫df堆积条形图中的前n个最大值?

时间:2020-02-20 15:11:31

标签: python pandas stacked-area-chart

我有一个类似的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 Colomns 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   -

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如果我了解您的要求...似乎可以通过在每一列中获取max,然后在nlargest中选择前十列来实现此目的:

df.max().nlargest(10)

结果应该是按列名称索引的Series,因此应该易于绘制该数据。