【问题标题】:Plotting Multiple Groupedby Pandas绘制多个 Groupby Pandas
【发布时间】:2017-03-07 18:05:50
【问题描述】:

为我想用 Pandas groupby 绘制的大型数据集绘制图。

groupby 是两层。一个是数字的(所需的 x 轴),一个是分类的(想要在堆积条形图上制作不同的框。我将各组的值相加,这将创建我的 y_axis。

所以我按数据框构造了以下组。

     import pandas as pd
     import matplotlib.pyplot as plt
     data= pd.DataFrame()

     data['x_axis'] = [1,1,2,2]
     data['category'] = ['a','b','a','b']
     data['y_value'] = [10,15,20,30]

     data = data.groupby(['x_axis','category']).sum()
     data.reset_index(inplace = True)


     data.plot.bar(x = 'x_axis', y= 'y_value', stacked = True)
     plt.show()

这会导致以下结果

    numeric_x_axis   category  sum_value
            1            a         10
                         b         15
            2            a         20
                         b         30

因此,欲望图将有一个 x 轴为 (1,2) 的堆积条形图,a 和 b 的堆积条形图,总和值为 y 轴值。

但是图表显示有多个重复的 x_axis 值。

【问题讨论】:

  • 究竟是什么问题或疑问?你试着做那个图表吗?如果是这样,请向我们展示代码并明确说明问题。如果没有,请先尝试!

标签: python pandas matplotlib plot


【解决方案1】:

您确定要使用groupby 吗?根据您的描述,pivot 似乎会更好地为您服务。

data = pd.DataFrame()

data['x_axis'] = [1,1,2,2]
data['category'] = ['a','b','a','b']
data['y_value'] = [10,15,20,30]

pivoted_data = data.pivot('x_axis', 'category')
pivoted_data.plot(kind='bar', stacked=True)
plt.show()


注意,旋转后的数据框看起来像

In [2]: pivoted_data
Out[2]: 
         y_value    
category       a   b
x_axis              
1             10  15
2             20  30

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2015-09-05
    • 2017-08-10
    相关资源
    最近更新 更多