大家好,我是小五🐶
發現大家還是最喜歡股票基金話題呀~
那說到股票基金就不得不提——K線圖!
那小五今天就帶大家👉
python
來輕鬆繪製高顏值的K線圖🚀
獲取股票交易數據
巧婦難爲無米之炊,做可視化也離不開數據。
本文我將以醬香型科技——貴州茅臺爲例,獲取它的近期股票數據並繪製K線圖。
如果我們要特意去動手去寫爬蟲,就顯得有些多餘了,畢竟爬完之後體驗也不佳。
這裏我們可以直接使用tushare 、akshare等等金融數據接口,個人非常安利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)
額,相差較大,我們再改一點點參數吧。
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線圖吧!🚀
如果喜歡我的文章,求點贊支持一波。
如果對文中代碼感興趣,可以點擊下方卡片,在「快學Python」👇後臺回覆“K線圖”一鍵獲取
本文分享自微信公衆號 - 凹凸數據(alltodata)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。