如何在 python 中在聚合数据上绘制条形图?

数据挖掘 Python 可视化 熊猫 matplotlib
2021-09-15 01:49:51

通常,当我绘制条形图时,它很简单

import matplotlib.pyplot as plt
from pylab import rcParams
import seaborn as sb

%matplotlib inline
rcParams['figure.figsize'] = 5, 4
sb.set_style('whitegrid')

x = range(1, 10)
y = [1,2,3,4,0.5,4,3,2,1]

plt.bar(x, y)

age当我使用以下命令根据功能聚合数据时

data_ag = data.groupby('age')['age'].count()

它返回属于特定年龄的人的输出,例如 22 岁的 11 人。

age
22     11
23      8
27     28
28      1
29     70
30     13
31     45
Name: age, dtype: int64

我如何将这些视为绘制条形图xy点?

x = # what should I write here for age data
y = # what for count 

plt.bar(x, y)
2个回答
import pandas as pd

df = pd.Series(data=[11, 8, 28, 1, 70, 13, 45],
               index=[22, 23, 27, 28, 29, 30, 31],
               name="age").rename_axis("age", axis=0)

x = df.index
y = df.values

plt.bar(x, y)

在此处输入图像描述

size()我使用和reset_index()函数解决了我的问题。

g1 = data.groupby( ["age"] ).size().reset_index(name='count')

x= g1['count']
y=g1['age']

plt.bar(x, y)