轉載:https://blog.csdn.net/qq_41437512/article/details/105319421
安裝`mplfinance`庫(Windows 10)
導入
示例代碼
總結
推薦閱讀
近日需要使用 matplotlib的 finance庫來繪制K線圖及均線,但是 finance庫已經停止更新了,查詢后得知 finance庫已經從 matplotlib中獨立出來,新庫名為 mpl_finance,但此庫在使用中會出現棄用警告,查詢官方文檔后得知由一個更新的 mplfinance庫替代(注意中間沒有下划線或橫線!)。更新后的 mplfinance庫較以往更加簡單易用,增加了很多新功能(renko磚形圖、volume柱形圖、ohlc圖等),且支持多種風格,可定制多種顏色(因為國外K線圖顏色與國內相反,容易產生誤導),線條(默認線條較粗,影響觀感)等。鑒於目前介紹 mplfinance庫的中文文檔匱乏,下面介紹相關用法,以供參考。
官方文檔及項目的GitHub地址:
pypi主頁
GitHub項目地址
項目源碼、官方文檔及示例ipynb文件(已上傳至百度雲,方便下載,提取碼:481m)
安裝mplfinance庫(Windows 10)
安裝mplfinance庫要求pandas和matplotlib
pip install mplfinance --upgrade --user -i https://pypi.tuna.tsinghua.edu.cn/simple
1
導入
import mplfinance as mpf
1
廢話不多說,直接上代碼。。
示例代碼
import mplfinance as mpf
import matplotlib as mpl# 用於設置曲線參數
from cycler import cycler# 用於定制線條顏色
import pandas as pd# 導入DataFrame數據
import matplotlib.pyplot as plt
def import_csv(stock_code):
# 導入股票數據
df = pd.read_csv(stock_code + '.csv')
# 格式化列名,用於之后的繪制
df.rename(
columns={
'date': 'Date', 'open': 'Open',
'high': 'High', 'low': 'Low',
'close': 'Close', 'volume': 'Volume'},
inplace=True)
# 轉換為日期格式
df['Date'] = pd.to_datetime(df['Date'])
# 將日期列作為行索引
df.set_index(['Date'], inplace=True)
return df
# 導入數據
symbol = 'sh600519'
period = 100
df = import_csv(symbol)[-period:]
# 設置基本參數
# type:繪制圖形的類型,有candle, renko, ohlc, line等
# 此處選擇candle,即K線圖
# mav(moving average):均線類型,此處設置7,30,60日線
# volume:布爾類型,設置是否顯示成交量,默認False
# title:設置標題
# y_label:設置縱軸主標題
# y_label_lower:設置成交量圖一欄的標題
# figratio:設置圖形縱橫比
# figscale:設置圖形尺寸(數值越大圖像質量越高)
kwargs = dict(
type='candle',
mav=(7, 30, 60),
volume=True,
title='\nA_stock %s candle_line' % (symbol),
ylabel='OHLC Candles',
ylabel_lower='Shares\nTraded Volume',
figratio=(15, 10),
figscale=5)
# 設置marketcolors
# up:設置K線線柱顏色,up意為收盤價大於等於開盤價
# down:與up相反,這樣設置與國內K線顏色標准相符
# edge:K線線柱邊緣顏色(i代表繼承自up和down的顏色),下同。詳見官方文檔)
# wick:燈芯(上下影線)顏色
# volume:成交量直方圖的顏色
# inherit:是否繼承,選填
mc = mpf.make_marketcolors(
up='red',
down='green',
edge='i',
wick='i',
volume='in',
inherit=True)
# 設置圖形風格
# gridaxis:設置網格線位置
# gridstyle:設置網格線線型
# y_on_right:設置y軸位置是否在右
s = mpf.make_mpf_style(
gridaxis='both',
gridstyle='-.',
y_on_right=False,
marketcolors=mc)
# 設置均線顏色,配色表可見下圖
# 建議設置較深的顏色且與紅色、綠色形成對比
# 此處設置七條均線的顏色,也可應用默認設置
mpl.rcParams['axes.prop_cycle'] = cycler(
color=['dodgerblue', 'deeppink',
'navy', 'teal', 'maroon', 'darkorange',
'indigo'])
# 設置線寬
mpl.rcParams['lines.linewidth'] = .5
# 圖形繪制
# show_nontrading:是否顯示非交易日,默認False
# savefig:導出圖片,填寫文件名及后綴
mpf.plot(df,
**kwargs,
style=s,
show_nontrading=False,
savefig='A_stock-%s %s_candle_line'
% (symbol, period) + '.jpg')
plt.show()
配色表圖片引用自finthon.com/matplotlib-color-list/
總結
示例代碼介紹了一些常用參數及配置,基本包含K線繪制的所有內容。圖例等內容與matplotlib庫使用方法相同,不作贅述。
了解更多請見網盤的example文件夾,包含官方的jupyter notebook詳解。
本人第一次寫csdn文章,若出現錯誤請多多包涵。如果有幫助就點個贊吧!
2020.4.9更新, 運行代碼時不顯示圖像,在代碼后加plt.show()即可(import matplotlib.pyplot as plt )。
推薦閱讀
本人的其他有關文章,感興趣的朋友可以看看。
Python繪制MACD指標圖
Python繪制BOLL布林線指標圖
Python繪制RSI相對強弱指標圖