あい
今回はpythonで
コレログラムを実装します
[PR]※本サイトには、プロモーションが含まれています
合わせて読みたい
今回使用するデータセット
3年分の電気使用量データ
年 | 月 | 使用量(kWh) |
2021 | 1 | 320 |
2021 | 2 | 280 |
2021 | 3 | 300 |
2021 | 4 | 310 |
2021 | 5 | 350 |
2021 | 6 | 400 |
2021 | 7 | 450 |
2021 | 8 | 480 |
2021 | 9 | 420 |
2021 | 10 | 370 |
2021 | 11 | 340 |
2021 | 12 | 390 |
2022 | 1 | 330 |
2022 | 2 | 290 |
2022 | 3 | 310 |
2022 | 4 | 320 |
2022 | 5 | 360 |
2022 | 6 | 410 |
2022 | 7 | 460 |
2022 | 8 | 490 |
2022 | 9 | 430 |
2022 | 10 | 380 |
2022 | 11 | 350 |
2022 | 12 | 400 |
2023 | 1 | 340 |
2023 | 2 | 300 |
2023 | 3 | 320 |
2023 | 4 | 330 |
2023 | 5 | 370 |
2023 | 6 | 420 |
2023 | 7 | 470 |
2023 | 8 | 500 |
2023 | 9 | 440 |
2023 | 10 | 390 |
2023 | 11 | 360 |
2023 | 12 | 410 |
コレログラムを実装する
まずpythonにデータを読み込ませます
import pandas as pd
import matplotlib.pyplot as plt
# データをリストにまとめる
data = {
'年': [2021]*12 + [2022]*12 + [2023]*12,
'月': list(range(1, 13)) * 3,
'使用量(kWh)': [
320, 280, 300, 310, 350, 400, 450, 480, 420, 370, 340, 390,
330, 290, 310, 320, 360, 410, 460, 490, 430, 380, 350, 400,
340, 300, 320, 330, 370, 420, 470, 500, 440, 390, 360, 410
]
}
# データフレームに変換
df = pd.DataFrame(data)
# データフレームを表示
print(df.head(5))
実行結果
年 月 使用量(kWh)
0 2021 1 320
1 2021 2 280
2 2021 3 300
3 2021 4 310
4 2021 5 350
読み込めていますね
次に横軸年と月、縦軸電気の使用量の
折れ線グラフを作成し電気量の推移を確認します
最初に年と月のデータを合体させます
df['年月'] = df.apply(lambda row: f"{row['年']}-{row['月']:02d}", axis=1)
print(df["年月"])
実行結果
0 2021-01-01
1 2021-02-01
2 2021-03-01
3 2021-04-01
4 2021-05-01
5 2021-06-01
合体出来ました
折れ線グラフを下記コードで作成します
plt.plot(df["年月"], df["使用量(kWh)"], marker ="o")
plt.xticks(rotation = 90)
plt.xlabel("日付",fontname ="MS Gothic")
plt.ylabel("使用量(kwh)",fontname ="MS Gothic")
plt.title("電気の使用量(kwh)",fontname = "MS Gothic")
plt.tight_layout()
plt.show()
実行結果
コレログラムを作成します
下記ライブラリをインストールしてください
from statsmodels.graphics.tsaplots import plot_acf
コレログラムを下記コードで作成してください
plot_acf(df['使用量(kWh)'], lags=24, alpha=None, title='使用量 (kWh) のコレログラム', zero=False)
# グラフのタイトルとラベルを設定
plt.title('使用量 (kWh) のコレログラム', fontsize=16, fontname='MS Gothic')
plt.xlabel('ラグ', fontsize=14, fontname='MS Gothic')
plt.ylabel('相関', fontsize=14, fontname='MS Gothic')
# グラフを表示
plt.tight_layout()
plt.show()
実行結果
最後にコードを纏めておきます
グラフのコードは混乱するため分けて纏めます
電気の使用量の折れ線グラフを作成するコード
import pandas as pd
import matplotlib.pyplot as plt
# データをリストにまとめる
data = {
'年': [2021]*12 + [2022]*12 + [2023]*12,
'月': list(range(1, 13)) * 3,
'使用量(kWh)': [
320, 280, 300, 310, 350, 400, 450, 480, 420, 370, 340, 390,
330, 290, 310, 320, 360, 410, 460, 490, 430, 380, 350, 400,
340, 300, 320, 330, 370, 420, 470, 500, 440, 390, 360, 410
]
}
# データフレームに変換
df = pd.DataFrame(data)
# データフレームを表示
print(df.head(5))
df['年月'] = df.apply(lambda row: f"{row['年']}-{row['月']:02d}", axis=1)
print(df["年月"])
plt.plot(df["年月"], df["使用量(kWh)"], marker ="o")
plt.xticks(rotation = 90)
plt.xlabel("日付",fontname ="MS Gothic")
plt.ylabel("使用量(kwh)",fontname ="MS Gothic")
plt.title("電気の使用量(kwh)",fontname = "MS Gothic")
plt.tight_layout()
plt.show()
電気の使用量のコレログラムを作成するコード
import pandas as pd
import matplotlib.pyplot as plt
# データをリストにまとめる
data = {
'年': [2021]*12 + [2022]*12 + [2023]*12,
'月': list(range(1, 13)) * 3,
'使用量(kWh)': [
320, 280, 300, 310, 350, 400, 450, 480, 420, 370, 340, 390,
330, 290, 310, 320, 360, 410, 460, 490, 430, 380, 350, 400,
340, 300, 320, 330, 370, 420, 470, 500, 440, 390, 360, 410
]
}
# データフレームに変換
df = pd.DataFrame(data)
# データフレームを表示
print(df.head(5))
from statsmodels.graphics.tsaplots import plot_acf
plot_acf(df['使用量(kWh)'], lags=24, alpha=None, title='使用量 (kWh) のコレログラム', zero=False)
# グラフのタイトルとラベルを設定
plt.title('使用量 (kWh) のコレログラム', fontsize=16, fontname='MS Gothic')
plt.xlabel('ラグ', fontsize=14, fontname='MS Gothic')
plt.ylabel('相関', fontsize=14, fontname='MS Gothic')
# グラフを表示
plt.tight_layout()
plt.show()