用這個庫,輕松繪制股票K線圖
大家好,歡迎來到 Crossin的編程教室 !
有不少同學給我留言說希望講一講Python在股票基金分析方面的相關技術。
那說到股票基金就不得不提——K線圖!這是所有技術分析的基礎。
那我們今天就跟大家聊一聊:
python來輕松繪制高顏值的K線圖
獲取股票交易數據
巧婦難為無米之炊,做可視化也離不開數據。
本文我將以醬香型科技——貴州茅臺為例,獲取它的近期股票數據并繪制K線圖。

如果我們要特意去動手去寫爬蟲,就顯得有些多余了,因為Python的第三庫里已經有現成的工具,比如tushare 、akshare等等金融數據接口。之前的案例中我們用過幾次 tushare,這次我們用akshare來試一試。
如果沒安裝記得先在命令行里安裝好:
pip install akshare
運行以下語句,即可得到貴州茅臺(600519)的歷史數據:
import akshare as ak
df = ak.stock_zh_a_daily(symbol="sh600519", adjust="qfq")
df.tail()

這樣我們就獲取到了所需的數據。
注:ak.stock_zh_a_daily()函數,單次返回指定 A 股上市公司指定日期間的歷史行情日頻率數據。其中參數
adjust="qfq",返回前復權后的數據。
為了方便后面可視化,我們還需要使用索引選擇固定的行列。
df = df.iloc[-20:,0:5]
這樣就只篩選了開盤價、最高價、最低價、收盤價以及交易量的近期數據,下面開始用python制作高顏值的K線圖。

繪制K線圖
K線圖,又稱蠟燭圖。
通常包含四個數據,即開盤價、最高價、最低價、收盤價,所有的k線都是圍繞這四個數據展開,從而反映大勢的狀況和價格信息。如果把每日的K線圖放在一張紙上,就能得到日K線圖,同樣也可畫出周K線圖、月K線圖。一般它長這樣??

目前看其他文章制作K線圖時,通常都是以pyecharts為主。但今天給大家安利一個更方便的庫——mplfinance
https://github.com/matplotlib/mplfinance
它原本是是Matplotlib的子模塊,現被剝離成為一個獨立的庫。
導入庫后,只需一行代碼就可以生成K線圖啦!
import mplfinance as mpf
mpf.plot(data=df)

額,跟我們平常看到的K線圖相差有點大啊。我們再改一點點參數吧。
mpf.plot(
data=df,
type='candle',
mav=(3, 6, 9),
volume=True,
show_nontrading=True
)

用了幾個參數后,顏值還不錯吧。

參數說明
matplotlib庫繪制K線圖的主要參數如下所示:
mpf.plot(data, type, title, ylabel, style, volume, ylabel_lower, show_nontrading, figratio, mav)
data: 數據需要有'Open','High','Low','Close'等字段。 volume: True表示添加成交量,默認False type: 圖表類型,可選值包含:'ohlc', 'candle', 'line', 'renko', 'pnf' title: 標題 ylabel: 縱軸標簽 ylabel_lower: 成交量的Y軸標簽 show_nontrading: 是否顯示非交易日,默認False figratio: 控制圖表大小的元組 mav: 是否添加移動平均線 style: 各種內置樣式
這里就不對每個參數做具體說明了,大家感興趣的話可以自己更改參數查看效果。
最后給大家展示一下各種style樣式的效果??


解決中文亂碼
我們在使用Matplotlib可視化時,會遇到中文亂碼問題,一般用以下語句輕松解決:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號
同理,我們也可提前設置mplfinance的style里的字體格式,從而能夠展示中文標題、標簽等。
style = mpf.make_mpf_style(base_mpf_style='default', rc={'font.family': 'SimHei'})
mpf.plot(
data=df,
type='candle',
title="貴州茅臺股票K線圖",
ylabel="價格",
ylabel_lower="成交量",
mav=(3, 6, 9),
volume=True,
show_nontrading=True,
style=style)
這樣就解決了mplfinance可視化的中文亂碼問題。

以上就是今天分享給大家的小技巧了,快來一起用python來輕松繪制高顏值的K線圖吧!
本文相關代碼: https://pan.baidu.com/s/12eU_zLflh0Rgg6tCGnoMqQ 提取碼:kxpy
如果文章對你有幫助,歡迎轉發(fā)/點贊/收藏~
作者:朱小五
_往期文章推薦_
