superi

主にキャリアと金融を嗜むメディア

matplotlibで2軸グラフを描画する


スポンサーリンク

縦軸が左右にある 2 軸グラフを作成するにはsubplotを定義したaxisともう一方の軸をtwinします。

Yahoo!より取得した電通の2015年9月の株価終値と出来高の加工済みデータをプロットしてみましょう。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#データの読み込み

data = pd.read_csv('dentu_stock.txt',delimiter='\t', index_col=0)
data

                close turnover
date
2015/9/18 6200 1049900
2015/9/17 6340 619100
2015/9/16 6320 774700
2015/9/15 6280 1202200
2015/9/14 6190 894200
2015/9/11 6270 2569400
2015/9/10 6200 1208900
2015/9/9 6310 2781900
2015/9/8 5700 1693000
2015/9/7 5690 1009400
2015/9/4 5720 1192200
2015/9/3 5910 870000
2015/9/2 5880 1179500
2015/9/1 5890 1350900

上記データを2軸グラフにプロットします。 

fig, ax1 = plt.subplots()

#x軸
s=data.index

#主軸に出来高の棒グラフ

ax1.bar(s,data['turnover'], color = 'g')

#主軸と2軸の関連づけ

ax2=ax1.twinx()

#第2軸に株価
ax2.plot(s,data['close'],'r', label = 'close')

#描画の調整
plt.rcParams['font.size'] = 8
plt.ylabel('turnover')
plt.legend()
plt.savefig('dentu_stock.png')
plt.show()

f:id:ukichang:20150922005444p:plain

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

  • 作者: Wes McKinney,瀬戸山雅人,小林儀匡,滝口開資
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2018/07/26
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る
 

 

参考

api example code: two_scales.py — Matplotlib 1.4.3 documentation

(株)電通【4324】:株式/株価 - Yahoo!ファイナンス