matplotlibで複数系列の時系列グラフなどを表示した場合、グラフの線が太く重なっている箇所の詳細が把握しにくい。
特にJupyter Notebookでブラウザで表示している場合は、コードで見栄えを調整する必要がある。
Jupyter QtConsoleで、「%matplotlib qt」とIPythonのマジックコマンドでグラフのバックエンドをQTに変更して、GUIでグラフを表示すると、インタラクティブに拡大縮小や、グラフの線の変更、系列の表示/非表示などが行える。
例
グラフ表示する時系列データのロード
pandas-datareaderで、yahooのNIKKEI225の株価データをロードする。
import pandas_datareader as pdr price = pdr.DataReader("^N225", "yahoo", "1984/1/4", "2019/10/4")
Jupyter Notebookでグラフ表示
Jupyter Notebookで表示すると以下のようになる。
price.plot()
縦軸がVolumeに合わされているため、Open、Closeなどのデータが下の方に表示されている。
コードで非表示にする必要がある。
price[['High','Low','Open','Close','Adj Close']].plot()
縦軸のスケールが調整されて、株価の変動がわかるようになったが、Adj Closeの線しか見えない。
一部を拡大してみるにはまたコードを記述する必要がある。面倒である。
Qtでグラフ表示
次に、Jupyter QtConsoleで表示する。
%matplotlib qt price.plot()
初期表示は、Jupyter Notebookと同じように表示される。
しかし、コードを書かなくてもGUI操作で見た目を変更できる。
操作については、以下のページにマニュアルがある。
Interactive navigation — Matplotlib 3.1.2 documentation
Volumeを非表示にして、
線の幅を調整して、
マウスで範囲指定して一部を拡大して、見たい箇所にドラッグすることができる。
2019/10/6 追記
Jupyter Notebookでも
%matplotlib notebook
とすることで、インタラクティブなグラフが描画される。
ただし、移動・拡大縮小はできるが、系列の表示/非表示などはできない。
また、Google Colabでは使用できない。
2019/10/19 追記
複数系列をグラフ表示する場合、線の太さを細くしたい場合がある。
系列が多いと後からGUIで設定するのはめんどくさい。
線の太さは、表示時に一括で設定できる。
price.plot.line(linewidth=0.5)