Python3でグラフを描画
きっかけ
コロナの棒グラフを見ていたら、5日移動平均線とMACDとRCIをプロットしてみたくなった。ふと、描画したいなと思ったときにできるようになっておきたく。
matplotlib のインストール
どうやら、matplotlibがよく使われるらしい。下記でインストール。
> py -m pip install matplotlib
補足:pipが最新版ではなかったので下記で更新。
> py -m pip install --upgrade pip
とりあえず matplotlib にて y=x でも描画
感染者数を手入力でもinputして、棒グラフで出力
※上の数は適当。ファイルかなにかから取得すれば簡単に配列には入れられそう。
感染者数を取得(できればlistから)
date = list() infected_count = list() try: f = open(path) lines = f.read().split() except Excption as e: print(e) finally: f.close() #棒グラフ for i in range(int(len(lines)/2)): date.append(lines[i*2]) infected_count.append(int(lines[i*2+1]))
5,25日移動平均線の追加(7日、14日が適切?
MACDの追加
一度計算用の関数を作ったけど、モジュールがあったのでそちらを使用。
関数を作ったことで、MACDがどんな計算で算出されているのかをすることができたのは収穫。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib にて下記をダウンロード
64bitOS ⇒ TA_Lib-0.4.17-cp36-cp36m-win_amd64.whl
pip install TA_Lib-0.4.17-cp36-cp36m-win_amd64.whl
codeでは下記のように使用。np.arrayに手間取った。
import talib ### 感染者数と日付のデータをlistに入れる infected_count_int = list() for i in range(int(len(lines)/2)): date.append(lines[i*2]) infected_count_int.append(int(lines[2*i+1])) infected_count = np.array([float(x) for x in infected_count_int]) #MACD macd, macdsignal, macdhist = talib.MACD(infected_count, fastperiod=12, slowperiod=26, signalperiod=9)
下記サイトを参照しました。
python3でTA-Libをインストールする方法をまとめてみた - Qiita
日本語対応
タイトルなどに日本語を使用したかったので、下記をインストールして本文でimport
> py -m pip install japanize-matplotlib
↓
import japanize_matplotlib
次(計算めんどくさくて後日に...。
- RCIの追加