あれもPython,これもPython

Pythonメモ※本サイトはアフィリエイトを利用しています

Pandasで可視化をしたい(折れ線系)

最後は時系列系で使う折れ線です。

予測を重ねたり、累計したり、といった加工も多く、Pandasだけでは、少々力不足かな、という結論です。

#対象を絞って、複数のグラフをつくる
df.plot(y=['a','b'],subplots=True)


#累計にして、一つのグラフの中で見る
df.cumsum().plot.line()

#積み上げて構成を見る
df.plot.area(stacked=True)

#カテゴリーで集計して、カテゴリーごとにグラフを分けて折れ線にする
df.pivot_table(
    index='時系列のカラム',
    columns='属性のカラム'.
    values = '値のカラム',
    aggfunc='sum',#集計の仕方
  ).plot.lines()

#ばらつきなどがわかっている時に区間を描く
df.assign(
   upper = df['avg'] + df['std'],
   lower = df['avg'] + df['std']
).plot.line(y=['upper','avg','lower'])

#予測値などを追加して一気に描く
df['a'].reset_index().assign(kind='obs').\
append(pd.DataFrame(
    {
        'index':[98,99,100],
        'a':[0.2,0.4,1.],
        'kind':'pred'
    }
),ignore_index=True).\
pivot_table(
    index='index',
    columns = 'kind',
    values='a'
).plot.line()
f:id:esu-ko:20200808235026p:plainf:id:esu-ko:20200808235036p:plainf:id:esu-ko:20200808235044p:plainf:id:esu-ko:20200808235055p:plain