壹般來說,我們會從各大券商平臺獲取k線圖,但這種情況下獲取的k線圖往往不夠靈活,不能適應復雜多變的生產需求。因此,我們有必要學習如何用Python繪制k線圖。
需要註意的是,mpl_finance是原來的matplotlib.finance,現在是獨立的(而且好像沒人維護更新),我們會用它提供的方法來畫k線圖;Tushare是壹個用於在線獲取股票數據的庫;matplotlib.ticker中有壹個FuncFormatter()方法可以幫助我們調整坐標軸;Matplotlib.pylab.date2num可以幫助我們轉換日期數據。
我們以上證指數9月65438+2008以來的行情為例。
先用mpl_finance畫壹下,看看是否壹切正常。
如妳所見,所有的節假日,包括周末,都會在這裏顯示為空白,這對我們圖形的連續性非常不友好,所以我們必須把它們去掉。
如妳所見,空白問題完美解決,在此說明壹下。因為matplotlib會把日期數據理解為連續數據,而連續數據之間的間隔是有意義的,所以即使非交易日沒有數據,仍然會反映在坐標軸上。連續多少個非交易日對應坐標軸上多少個小方塊,但這些小方塊上方沒有對應的蠟燭圖。
知道了它的原理,我們才能對癥下藥。我們可以把連續的、固定區間的數據傳入橫坐標(日期),保證k線圖的繪制首先是連續的;然後用正確的日期數據生成壹個列表。接下來我們就可以根據坐標軸上的數據得到對應的正確日期,用坐標軸上的標簽代替。
上面的format_date函數就是為了這個目的。由於我們已經為日期列生成了從0開始的連續數據,所以我們可以直接使用它作為索引來從實際日期列表中獲取相應的數據。這裏我們將使用matplotlib . ticker . func formatter()方法,它允許我們指定壹個函數來格式化坐標軸標簽。在這個函數中,我們需要接受坐標軸的值和位置,並返回自定義標簽。
妳學會了嗎?
當然,壹張完整的k線圖並沒有到此結束。後面會考慮加入均線、成交量等元素。歡迎感興趣的同學關註!