前回までで、Google スプレッドシートでまとめたデータをJupyter Notebookで直接実行し、移動平均線のプロットすることができるようになりました。
blog.gelehrte.com
プロットしている価格は、私が遊んでいるFF14というゲームの嗜好品のピュアホワイトとジェットブラックです。
今度はプロットを保存して、EC2上で定期的に実行するところまで。
プロットした画像はこちらになります。
http://www.gelehrte.com/codes/purewhite/figure.png
2019/08/26時点での画像はこちら
やったこと
前回までのソースコードを修正
具体的には
ソースコード全体はこちらになります。
#%matplotlib inline import pandas as pd import matplotlib.pyplot as plt SERVICE_NUM = 10 # エレメンタルDCのワールド数 ITEM_NUM = 2 # 分析対象の商品の個数(ピュアホワイトとジェットブラック) # グラフのサイズ設定 plt.figure(figsize=(15, 18)) # csv読み込み、1列目は日付型で読み込み、インデックスとする # ピュアホワイト df_white = pd.read_csv('https://docs.google.com/spreadsheets/u/2/d/1Dhv9nZCDsnVvNQN1qCe6Y-YLbwEa6iH8pk9ik64gwIM/export?format=csv&gid=0', index_col=0, parse_dates=True,usecols=['date', 'Aegis_white','Atomos_white','Carbuncle_white','Garuda_white','Gungnir_white','Kujata_white','Ramuh_white','Tonberry_white','Typhon_white','Unicorn_white']) # ジェットブラック df_black = pd.read_csv('https://docs.google.com/spreadsheets/u/2/d/1Dhv9nZCDsnVvNQN1qCe6Y-YLbwEa6iH8pk9ik64gwIM/export?format=csv&gid=0', index_col=0, parse_dates=True,usecols=['date', 'Aegis_black','Atomos_black','Carbuncle_black','Garuda_black','Gungnir_black','Kujata_black','Ramuh_black','Tonberry_black','Typhon_black','Unicorn_black']) # 説明変数設定 X_white = df_white.index.to_frame() X_black = df_black.index.to_frame() # 全日の各ワールドの平均 Y_white = df_white.mean(axis='columns').to_frame() Y_black = df_black.mean(axis='columns').to_frame() # 移動平均線 5日 Y_white_5 = pd.Series(df_white.mean(axis='columns')).rolling(5).mean().to_frame() Y_black_5 = pd.Series(df_black.mean(axis='columns')).rolling(5).mean().to_frame() # 移動平均線 20日 Y_white_20 = pd.Series(df_white.mean(axis='columns')).rolling(20).mean().to_frame() Y_black_20 = pd.Series(df_black.mean(axis='columns')).rolling(20).mean().to_frame() plt.subplot(ITEM_NUM, 1,1) plt.title('white') plt.plot(X_white, Y_white, label="average") plt.plot(X_white, Y_white_5, label="5days moving average") plt.plot(X_white, Y_white_20, label="20days moving average") plt.legend() plt.subplot(ITEM_NUM, 1,2) plt.title('black') plt.plot(X_black, Y_black, label="average") plt.plot(X_black, Y_black_5, label="5days moving average") plt.plot(X_black, Y_black_20, label="20days moving average") #凡例 plt.legend() #plt.show() plt.savefig('figure.png')
AWS EC2環境にpython3環境を用意
こちらのサイトを参考にしました。
qiita.com
具体的にやったことはこちら
prevをインストール
# 関連ライブラリをヤムる
sudo yum update -y
sudo yum -y install git readline-devel zlib-devel bzip2-devel sqlite-devel openssl-devel
sudo yum -y groupinstall "Development Tools"# pyenvとvirtualenvを持ってくる
git clone https://github.com/yyuu/pyenv.git /home/ec2-user/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenv.git /home/ec2-user/.pyenv/plugins/pyenv-virtualenv# 環境変数にpyenvを追加(viで書いてもOK)
echo 'export PYENV_ROOT="/home/ec2-user/.pyenv"' >> /home/ec2-user/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /home/ec2-user/.bash_profile
echo 'eval "$(pyenv virtualenv-init -)"' >> /home/ec2-user/.bash_profile
echo 'eval "$(pyenv init -)"' >> /home/ec2-user/.bash_profile# bashリロード
source /home/ec2-user/.bash_profile
exec $SHELL -l
python3と必要ライブラリをインストール
# インストールできるバージョンの確認
pyenv install -l | less# 今回は3.7.4を入れました
pyenv install 3.7.4# virtualenv作成
pyenv virtualenv 3.7.4 v374
今後の予定
ひとまず、ブラウザで画像が見れるようにできました。
今後はLaravelなどを使って、綺麗にプロットを表示できるようにしたいですね。
FF14の人への話:ピュアホワイトとジェットブラック
漆黒が始まって数ヶ月たち、嗜好品の値段も下がる傾向にありますね。
物価自体も下がり傾向なのかな。
このまま値下がって
ピュアホワイトが安く手に入るようになるといいなぁ・・・・w
今回はここまで。それでは。