Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pandas - stacked bar chart with timeseries data

I'm trying to create a stacked bar chart in pandas using time series data:

        DATE        TYPE    VOL
    0   2010-01-01  Heavy   932.612903
    1   2010-01-01  Light   370.612903
    2   2010-01-01  Medium  569.451613
    3   2010-02-01  Heavy   1068.250000
    4   2010-02-01  Light   341.535714
    5   2010-02-01  Medium  484.250000
    6   2010-03-01  Heavy   1090.903226
    7   2010-03-01  Light   314.419355

X = date, Y = vol, stacks = type

any help greatly appreciated, thankyou.

like image 354
Analyst Avatar asked Jul 13 '17 22:07

Analyst


1 Answers

Let's use pandas plot:

df = df.set_index('DATE')
#moved the 'DATE' column into the index

df.index = pd.to_datetime(df.index)
#convert the string 'DATE' column to a datetime dtype

df.set_index('TYPE',append=True)['VOL'].unstack().plot.bar(stacked=True,figsize=(10,8))
#Moved 'TYPE' into the index with 'DATE' then unstacked 'TYPE' to create a dataframe that has 'DATE' as row labels and 'TYPE' as column labels.  And, then used pandas dataframe plot to chart that frame as a vertical bar chart with stacked=True.

enter image description here

like image 119
Scott Boston Avatar answered Nov 07 '22 08:11

Scott Boston