# 8tops上で採取しているデータの閲覧
from datetime import datetime as dt
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter # 時間軸のフォーマットを自在に
plt.rcParams["font.size"] = 14
fig, ax = plt.subplots(figsize=(12, 18), ncols=1, nrows=3)
df = {}
# 小淵沢IC
df['小淵沢IC'] = pd.read_csv(
"/ssd/toyoki/googleData/hakushu/kobuchizawa_googleTraffic.csv",
sep=",",
skipinitialspace=True)
df['小淵沢IC']['date'] = pd.to_datetime(
df['小淵沢IC']['date'], format='%Y/%m/%d %H:%M:%S')
# 長坂IC
df['長坂IC'] = pd.read_csv(
"/ssd/toyoki/googleData/hakushu/nagasaka_googleTraffic.csv",
sep=",",
skipinitialspace=True)
df['長坂IC']['date'] = pd.to_datetime(
df['長坂IC']['date'], format='%Y/%m/%d %H:%M:%S')
# 須玉IC
df['須玉IC'] = pd.read_csv(
"/ssd/toyoki/googleData/hakushu/sudama_googleTraffic.csv",
sep=",",
skipinitialspace=True)
df['須玉IC']['date'] = pd.to_datetime(
df['須玉IC']['date'], format='%Y/%m/%d %H:%M:%S')
fig_no = 0
for p in df:
df4plot = df[p]
# 描画期間の限定(全部だと多すぎる時は限定)
#df4plot = df[p][(dt.strptime("2020-02-24", "%Y-%m-%d") < df[p]['date'])
# & (df[p]['date'] < dt.strptime("2020-02-28", "%Y-%m-%d"))]
df4plot.plot(
x='date',
y=['to_verga', 'from_verga'],
ax=ax[fig_no],
label=[p + ' ⇒ べるが ', 'べるが ⇒ ' + p])
ax[fig_no].xaxis.set_major_formatter(DateFormatter('%m/%d'))
fig_no += 1
データのある日にちを折りたたんで、1日の変化を調べる
# これまでに得られた日にちについて時刻ごとに平均した値 (平日、休日を分けたほうが良いのだが)
df4av = {}
mean_df = {}
for p in df:
df[p]['date_obj'] = pd.to_datetime(
df[p]['date']) # dateは文字列なので、datetime型の列を新設
df[p]['hour_min'] = df[p]['date_obj'].dt.strftime("%H:%M") # 時分の文字列の列を新設
# 描画期間の限定(全部だと多すぎるので)
df4av[p] = df[p][(dt.strptime("2020-02-25", "%Y-%m-%d") <= df[p]['date']) &
(df[p]['date'] <= dt.strptime("2020-03-02", "%Y-%m-%d"))]
# groupbyによる平均値計算mean()を行うとマルチインデックスのデータ構造になる
# reset_index()によりマルチインデックスが解除になる
mean_df[p] = df4av[p].groupby('hour_min').mean().reset_index()
# 取得期間を平均した日変位データmean_dfをプロット
# 期間を限定したいときは次を使う
# df[p] = df[p][(dt.strptime("2020-01-05","%Y-%m-%d") < df[p]['date']) &
# (df[p]['date'] < dt.strptime("2020-01-31","%Y-%m-%d"))]
plt.rcParams["font.size"] = 14
fig, ax = plt.subplots(figsize=(12, 18), ncols=1, nrows=3)
fig_no = 0
for p in mean_df:
mean_df[p].plot(
x='hour_min',
y=['to_verga', 'from_verga'],
label=[p + ' ⇒ べるが ', 'べるが ⇒ ' + p],
ax=ax[fig_no],
fontsize=14,
lw=2)
fig_no += 1
plt.tight_layout()
fig.suptitle("べるがと近隣IC間の所要時間(秒)", fontsize=20)
plt.subplots_adjust(top=0.9)
#file_body = "JotoGoogleDirectionData"
#plt.savefig(file_body + ".svg", bbox_inches="tight")
#import subprocess
#subprocess.run("inkscape --file " + file_body + ".svg" + " --export-emf " + file_body + ".emf", shell=True)