Python研究ノート:mplfinanceのプロットを使用してK線グラフを描画する

記事ディレクトリ

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ツールであり、次の企業や機関のデータを簡単に取得するために使用できます。

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()
  • プログラムを実行して結果を表示する
    ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/howard2005/article/details/109227653