大容量データでグラフを作成したいが強制終了する
1時間ごとにデータファイルがあり(例えは、2018010100、2018010101、2018010102・・・)、これを1か月分ほど読み込んでグラフを作成したいのですが、途中で強制終了してしまいます。おそらく読み込むデータ量が多すぎるためではないかと思うのですが、何かいい方法はないでしょうか?
データは、x軸が時間、y軸が値となっており、以下のコードサンプルでは1Hzのデータとなっていますが、実際は100Hzの波形データです。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime
from datetime import datetime
from datetime import timedelta
startymdh = '2018070100'
endymdh = '2018070223'
ymdh = startymdh
#グラフ作成
fig,ax = plt.subplots()
#x軸の範囲
ax.set_xlim(datetime.strptime(startymdh,'%Y%m%d%H'), datetime.strptime(endymdh,'%Y%m%d%H')+ timedelta(hours=1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m/%d'))
#1時間毎にファイル読み込み
while ymdh <= endymdh :
#x_data: スタート時刻から1秒ごとに3600要素のリストを生成
x = pd.date_range(datetime.strptime(ymdh,'%Y%m%d%H'),
datetime.strptime(ymdh,'%Y%m%d%H')+ timedelta(hours=1)-timedelta(seconds=1),
freq = 'S')
#y_data: 0から(1+hour)の間で乱数を発生させて3600要素のリストを生成
print (ymdh[8:10])
y = np.random.randint(0,int(ymdh[8:10])+1,3600)
#3プロット
ax.plot(x, y, color='C0')
#変数を1時間後にする
ymdhtmp = datetime.strptime(ymdh,'%Y%m%d%H') + timedelta(hours=1)
ymdh = ymdhtmp.strftime('%Y%m%d%H')
else:
#変数を1時間後にする
ymdhtmp = datetime.strptime(ymdh,'%Y%m%d%H') + timedelta(hours=1)
ymdh = ymdhtmp.strftime('%Y%m%d%H')
#出力ファイル名
plt.savefig('test.png')
plt.close()