👻

matplotlibの使い方

2021/09/16に公開

1. まずは基本形

プロットデータのx,yをリストで渡して表示。

fig = plt.figure()
ax = fig.add_subplot()

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

ax.plot(x, y)

2. x軸を時刻にしてみる

from datetime import datetime, timedelta
x_t =  [datetime(2021, 9, 1) + timedelta(hours=i) for i in range(4)]
'''
x_t
[datetime.datetime(2021, 9, 1, 0, 0),
datetime.datetime(2021, 9, 1, 1, 0),
datetime.datetime(2021, 9, 1, 2, 0),
datetime.datetime(2021, 9, 1, 3, 0)]
'''

fig = plt.figure()
ax = fig.add_subplot()
ax.plot(x_t, y)
ax.scatter(x_t, y) # 点もプロットしてみる

いけた!!:tada:

3. dataframeのデータをプロットしてみる。

3.1 sampleのdataframe作ります。

import pandas as pd
df = pd.DataFrame(
    {
    'x': x,
    'y': y,
    'x_t': x_t
    }
)
print(df)
'''
   x   y                 x_t
0  1   1 2021-09-01 00:00:00
1  2   4 2021-09-01 01:00:00
2  3   9 2021-09-01 02:00:00
3  4  16 2021-09-01 03:00:00
'''

3.2 リストにすればプロットできるのでカラムごとにリストに変換してあげればOKでした。
こんな感じ。

x_df = df['x'].to_list()
y_df = df['y'].to_list()

3.3 あとは同じようにプロットします

fig = plt.figure()
ax = fig.add_subplot()

ax.plot(x_df, y_df)

途中でちょっと躓いてしまいました。
リストにするときこちらだとNG!!

x_df = df[['x']].to_list()
y_df = df[['y']].to_list()

※カラム抽出するときに['x']だとseries,[['x']]だとdataframeになってしまいます。今回はseriesにしてto_list()します。

matplotlibとdataframeあまり慣れてないので、これだけでも結構しんどいかったです。

Discussion