【问题标题】:How would I plot a bar graph with this data我将如何用这些数据绘制条形图
【发布时间】:2017-07-25 09:44:01
【问题描述】:

我有一个数据框,我过滤掉了列以获取 x 并做了 y = vl.groupby(['Model Year','Manufacturer']).size() 获取 y 的值。 现在,当我尝试绘制它时,我得到了一个错误。这是我第一次尝试可能会遗漏一些东西。你能帮帮我吗?

#ax = plt.subplot(111)
#ax.bar(x, y,width=0.1,color='b',align='center')

#plt.show()

x: array(['1991', '1992', '1993', '1994'], dtype=object)

y: 1991        Chevrolet             1
            Ford                  1
1992        Chevrolet             2
            Dodge                 2
            Ford                  1
1993        Chevrolet             3
            Dodge                 2
            Ford                  2
1994        Dodge                 3
            Ford                  2
dtype: int64

我要绘制的是年份与制造商的汽车数量。

【问题讨论】:

    标签: python pandas matplotlib bar-chart


    【解决方案1】:

    我认为您需要添加unstack 来创建最后一级为MultiIndex 的列,然后添加DataFrame.plot.bar

    print (y.unstack(fill_value=0))
          Chevrolet  Dodge  Ford
    1991          1      0     1
    1992          2      2     1
    1993          3      2     2
    1994          0      3     2
    
    y = vl.groupby(['Model Year','Manufacturer']).size()
    y.unstack(fill_value=0).plot.bar(width=0.1, align='center')
    
    plt.show()
    

    crosstab 的另一种可能解决方案:

    pd.crosstab(vl['Model Year'], vl['Manufacturer']).plot.bar(width=0.1, align='center')
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多