記事ディレクトリ
mplfinanceは、財務データ専用の視覚分析モジュールであり、matplotlibに基づくユーティリティモジュールプログラムです。
1.mpl-financeからmplfinanceへ
1.mpl-financeモジュールをインストールします
pip install mpl-finance
2.mpl_financeモジュールをインポートすると警告が表示されます
mpl_financeをmpfとしてインポートします
- 警告メッセージがポップアップします:それ
mpl_finance
は放棄されました、使用してくださいmplfinance
(ダッシュ、アンダースコアなし)。
3.mplfinanceモジュールをインストールします
pip install mplfinance
4.pandas.datareaderモジュールをインストールします
pip install pandas.datareader
2.オンラインデータを取得し、K線図を描きます
1.datareaderを使用してオンライン株式市場データを読み取ります
import pandas_datareader as pdr
dir(pdr)
结果:
['DataReader',
'Options',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__path__',
'__spec__',
'__version__',
'_utils',
'_version',
'av',
'bankofcanada',
'base',
'compat',
'data',
'econdb',
'enigma',
'eurostat',
'exceptions',
'famafrench',
'fred',
'get_components_yahoo',
'get_dailysummary_iex',
'get_data_alphavantage',
'get_data_enigma',
'get_data_famafrench',
'get_data_fred',
'get_data_moex',
'get_data_quandl',
'get_data_stooq',
'get_data_tiingo',
'get_data_yahoo',
'get_data_yahoo_actions',
'get_iex_book',
'get_iex_data_tiingo',
'get_iex_symbols',
'get_last_iex',
'get_markets_iex',
'get_nasdaq_symbols',
'get_quote_yahoo',
'get_recent_iex',
'get_records_iex',
'get_summary_iex',
'get_tops_iex',
'iex',
'io',
'moex',
'nasdaq_trader',
'naver',
'oecd',
'quandl',
'stooq',
'tiingo',
'yahoo']
import pandas_datareader as pdr
data = pdr.get_data_yahoo('INTC', '2020/9/1', '2020/10/1')
- IBMの在庫データにアクセスする場合は、最初のパラメーターを「IBM」に変更します。
data = pdr.get_data_yahoo( 'IBM'、 '2020/9/1'、 '2020/10/1')
2. mplfinaceのplot()を使用してK線グラフを描画します
3.プロット描画タイプを変更します
- パラメータタイプを使用して描画タイプを変更します。デフォルトはohlcで、type = 'candle'またはtype = 'line'に変更できます。
4.図面移動平均を追加します
- キーワードパラメータmav =(2、5、10)、複数の移動平均はタプルを使用し、1つの移動平均のみが描画されます。mav= 10
5.ボリュームを描画します
- キーワードパラメータvolume = True
6.空白以外の取引日を自動的に除外します
- キーワードパラメータshow_nontrading、デフォルトはFalse、Trueに設定、一時停止の期間を確認できます
- 上記のデータには一時停止期間がないため、図面に違いはありません。
7. 2020年9月のIBM株のK線チャートを描く
3.ローカルデータを読み取り、K線図を描きます
1.ローカルデータを表示する
- plot()関数のパラメーターデータはpandas.DataFrameデータタイプである必要があり、含まれる列の要件もあることを説明します。これには、「Open」、「High」、「Low」、および「Close」のデータが含まれている必要があります(最初の文字は大文字にする必要があることに注意してください)。 、および行インデックスはpandas.DatetimeIndexである必要があり、行インデックスの名前は「Date」である必要があり、オプションの「Volume」の列があります。
2.ローカルデータを読み取る
import pandas as pd
import mplfinance as mpf
data = pd.read_csv('d:/python_work/202010/test2020.csv', index_col='Date')
3.インデックスタイプをDatetimeIndexに変更します
data.index = pd.DatetimeIndex(data.index)
4.非取引時間を除いてK線チャートを描きます
mpf.plot(data、type = 'candle'、mav =(2、5、10)、volume = True)
5.ローソク足チャートを描いて非取引時間を示します
mpf.plot(data、type = 'candle'、mav =(2、5、10)、volume = True、show_nontrading = True)
第4に、plot()関数のaddplotパラメーターを設定します
1. 2020年10月1日から10月23日までのIBMのデータを読み取る
import mplfinance as mpf
import pandas_datareader as pdr
data = pdr.get_data_yahoo('IBM', '2020/10/1', '2020/10/23')
data.head(5)
- データをibm_data.csvにエクスポートします
- ibm_data.csvを開き、MidValueの列を追加します
- ローカルデータファイルを読み取る-ibm_data.csv
data = pd.read_csv('d:/python_work/202010/ibm_data.csv', index_col='Date')
data.index = pd.DatetimeIndex(data.index)
- 次に、新しく追加した列をローソク足チャートに追加する必要があります-MidValue
2. make_addplot()関数を使用して、addplotパラメーター値を定義します
add_plot = mpf.make_addplot(data['MidValue'])
3.ローソク足チャートを描き、MidValue列に対応する曲線を追加します
mpf.plot(data, type='candle', addplot=add_plot)
4.ローソク足チャートを描き、High、MidValue、Lowに対応する曲線を追加します
add_plot = mpf.make_addplot(data[['High', 'MidValue', 'Low']])
mpf.plot(data, type='candle', addplot=add_plot)
5.結果グラフにマークを追加します
a_list = data.High.tolist()
b_list = data.Low.tolist()
add_plot = [
mpf.make_addplot(a_list, scatter=True, markersize=100, marker='v', color='y'),
mpf.make_addplot(b_list, scatter=True, markersize=100, marker='^', color='r'),
mpf.make_addplot(data['MidValue'])]
mpf.plot(data, type='candle', addplot=add_plot)
5、pandas_datareader補足手順
1.アクセス可能な企業および機関
pandas_datareaderは、財務データをリモートで取得するためのPythonツールであり、次の企業や機関のデータを簡単に取得するために使用できます。
- Yahooファイナンス:Yahoo!ファイナンス
- Googleファイナンス:Googleファイナンス
- エニグマ公開データ検索プロバイダー:エニグマ
- セントルイス連邦準備銀行:St.Louis FED(FRED)
- ケネスフレンチのデータライブラリ:ケネスフレンチのデータライブラリ
- 世界銀行:世界銀行
- OECD:OECD
- ユーロスタット:ユーロスタット
- 米国連邦政府が管理する退職組織:節約貯蓄プラン
- Nasdaq Traderシンボル定義:NasdaqTraderシンボル定義
2.Googleファイナンスデータにアクセスする
- 2020年9月のIBM株式データへのアクセス
- 2020年9月のIBMの株式のK線チャートを描く
- 2020年1月1日から10月22日までのIBM株式データへのアクセス
- 2020年1月1日から10月22日までのIBM株のK線チャートを描く
3.Nasdaqトレーディングシンボルの定義へのアクセス
4. World BankNY.GDP.PCAP.KDデータへのアクセス
- 過去20年間の米国、中国、日本のNY.GDP.PCAP.KDデータを取得する
from pandas_datareader import wb
data = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'CN', 'JP'], start=2001, end=2020)
data
Out[3]:
NY.GDP.PCAP.KD
country year
China 2020 NaN
2019 8254.300930
2018 7806.953095
2017 7346.611355
2016 6907.962011
2015 6500.281937
2014 6103.590270
2013 5710.587873
2012 5325.160106
2011 4961.234689
2010 4550.453596
2009 4132.902312
2008 3796.633363
2007 3480.152725
2006 3062.534905
2005 2732.165880
2004 2467.132843
2003 2253.929689
2002 2061.162284
2001 1901.407630
Japan 2020 NaN
2019 49187.833090
2018 48766.133663
2017 48510.609409
2016 47403.046912
2015 47102.580878
2014 46484.155267
2013 46249.209589
2012 45276.874335
2011 44538.726191
2010 44507.676386
2009 42724.760370
2008 45165.787919
2007 45687.273815
2006 44995.494492
2005 44393.626384
2004 43671.679974
2003 42744.011285
2002 42190.804873
2001 42239.184926
United States 2020 NaN
2019 55670.235709
2018 54659.198268
2017 53382.764823
2016 52555.518032
2015 52116.738813
2014 51028.824895
2013 50171.237133
2012 49603.253474
2011 48866.053277
2010 48467.515777
2009 47648.813250
2008 49319.478865
2007 49856.281491
2006 49405.767296
2005 48499.812376
2004 47287.593772
2003 45980.514585
2002 45087.367279
2001 44728.597475
- 3カ国のデータの平均を見つける
data['NY.GDP.PCAP.KD'].groupby(level=0).mean()
Out[4]:
country
China 4702.903026
Japan 45359.972092
United States 49701.871926
Name: NY.GDP.PCAP.KD, dtype: float64
- 過去20年間の米国、中国、日本の1人当たりGDPの比較
from pandas_datareader import wb
dat = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'CN', 'JP'], start=2001, end=2020)
dat
Out[3]:
NY.GDP.PCAP.KD
country year
China 2020 NaN
2019 8254.300930
2018 7806.953095
2017 7346.611355
2016 6907.962011
2015 6500.281937
2014 6103.590270
2013 5710.587873
2012 5325.160106
2011 4961.234689
2010 4550.453596
2009 4132.902312
2008 3796.633363
2007 3480.152725
2006 3062.534905
2005 2732.165880
2004 2467.132843
2003 2253.929689
2002 2061.162284
2001 1901.407630
Japan 2020 NaN
2019 49187.833090
2018 48766.133663
2017 48510.609409
2016 47403.046912
2015 47102.580878
2014 46484.155267
2013 46249.209589
2012 45276.874335
2011 44538.726191
2010 44507.676386
2009 42724.760370
2008 45165.787919
2007 45687.273815
2006 44995.494492
2005 44393.626384
2004 43671.679974
2003 42744.011285
2002 42190.804873
2001 42239.184926
United States 2020 NaN
2019 55670.235709
2018 54659.198268
2017 53382.764823
2016 52555.518032
2015 52116.738813
2014 51028.824895
2013 50171.237133
2012 49603.253474
2011 48866.053277
2010 48467.515777
2009 47648.813250
2008 49319.478865
2007 49856.281491
2006 49405.767296
2005 48499.812376
2004 47287.593772
2003 45980.514585
2002 45087.367279
2001 44728.597475
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 23 12:13:00 2020
@author: howard
美国、中国、日本近二十年人均GDP对比图
"""
from pandas_datareader import wb
import matplotlib.pyplot as plt
dat = wb.download(indicator='NY.GDP.PCAP.KD', country=['US', 'CN', 'JP'], start=2001, end=2020)
dat2draw = dat.unstack(level=0)
plt.figure(figsize=(10,4))
plt.plot(dat2draw.iloc[:,0], 'r-', label="China")
plt.plot(dat2draw.iloc[:,1], 'b-*', label="Japan")
plt.plot(dat2draw.iloc[:,2], 'g--', label="USA")
plt.title("PER CAPITA GDP ($)", fontsize=20)
plt.legend()
- プログラムを実行して結果を表示する