日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用 pandas + matplotlib 绘制精美的K线图

發布時間:2024/9/15 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用 pandas + matplotlib 绘制精美的K线图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是早起。

在使用 Python 進行金融數據分析時,繪制 K線圖 是很常見的需求。

但如果使用 matplotlib 從 0 開始繪制,一步一步添加日線、均線、MACD、成交量等指標時,則會顯得十分麻煩,且代碼很難復用。

幸運的是在 matplotlib 中提供接口(matplotlib.finance)直接繪制K線,現在 matplotlib.finance 已經獨立成庫 mplfinance,更方便的讓我們使用。

本文就將介紹如何使用 mplfinance 快速繪制專業的K線圖,文末也有完整的數據與源碼下載。


01

安裝與數據準備

上面已經說到,mplfinance 是一個獨立的庫,所以直接使用 pip 安裝即可,沒有任何難度

pip?install?mplfinance

至于在數據準備上,根據我的開發經驗,越懶人版的繪圖庫對數據要求則越嚴格,所以在使用之前,我們需要將數據整理成指定的格式,下面是某股票(平安銀行000001.sz)的對應數據

如上圖所示,數據必須是Pandas DataFrame格式,且必須按照順序包含開盤價、最高價、最低價、收盤價以及成交量,同時索引需要是pandas支持的時間類型。

關于如何獲得、清洗得到這樣的數據將不是本文的分享內容,下面僅介紹如何基于這樣的數據進行繪圖。

02

mplfinance常見用法

基礎使用

首先需要導入

import?mplfinance?as?mpf

接下來,在上述數據基礎上一行代碼即可生成簡易價格走勢圖

mpf.plot(df_new,?type='line')

添加移動均線

通過設置 mav 參數可以添加對應的移動均線,例如添加5日、10日、30日移動均線

mpf.plot(df_new,?type='line',mav=(5,10,30))

需要注意的是,這里的x日移動均線并不是通過我們數據的時間索引計算而來,僅是移動x個索引位置而來,由于我們數據時間精度為1天,所以恰好是對應的x天移動均線。

如果索引是分鐘級數據,那么設置 mav 得到的就是x分鐘均線!

添加成交量

通過設置 volume 參數,可以進一步添加成交量

mpf.plot(df_new,?type='line',mav=(5,10,30),?volume=True)

制作蠟燭圖

通過設置 type 參數可以繪制更專業的蠟燭圖,由于上面的數據時間維度過長,繪制蠟燭圖會導致很難看清細節。

所以下面繪制最后 40 個交易日的蠟燭圖,并添加成交量與 3、6、9 日均線

mpf.plot(df_new.tail(40),?type='candle',mav=(3,6,9),?volume=True)

展示非交易時間

上面的圖是連續的,但交易日并不是天天都是,每天也有指定時間,通過設置 show_nontrading 參數,可以按照交易時間繪制,將非交易時間添加為空白

mpf.plot(df_new,type='candle',mav?=?(3),show_nontrading=True,?volume=True)

至此 mplfinance 的基本使用就介紹完畢,相比來說還是比較容易上手使用的。

?pyecharts

雖然 matplotlib 也可以繪制動態圖,但是由于 matplotlib 的特性,展示起來并不是很方便。

如果需要能交互式操作數據,拖動時間軸等功能,可以嘗試使用 pyecharts,但由于不像 mplfinance 封裝好開箱即用,代碼寫起來還是需要相當一定時間的,大家可以自行選擇


推薦閱讀

牛逼!Python常用數據類型的基本操作(長文系列第①篇)

牛逼!Python的判斷、循環和各種表達式(長文系列第②篇)

牛逼!Python函數和文件操作(長文系列第③篇)

牛逼!Python錯誤、異常和模塊(長文系列第④篇)

總結

以上是生活随笔為你收集整理的用 pandas + matplotlib 绘制精美的K线图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。