利用python numpy+matplotlib繪制股票k線圖的方法
一、python numpy + matplotlib 畫(huà)股票k線圖
# -- coding: utf-8 -- import requests import numpy as np from matplotlib import pyplot as plt from matplotlib import animation fig = plt.figure(figsize=(8,6), dpi=72,facecolor="white") axes = plt.subplot(111) axes.set_title('Shangzheng') axes.set_xlabel('time') line, = axes.plot([], [], linewidth=1.5, linestyle='-') alldata = [] def dapan(code): url = 'http://hq.sinajs.cn/?list='+code r = requests.get(url) data = r.content[21:-3].decode('gbk').encode('utf8').split(',') alldata.append(data[3]) axes.set_ylim(float(data[5]), float(data[4])) return alldata def init(): line.set_data([], []) return line def animate(i): axes.set_xlim(0, i+10) x = range(i+1) y = dapan('sh000001') line.set_data(x, y) return line anim=animation.FuncAnimation(fig, animate, init_func=init, frames=10000, interval=5000) plt.show()
二、使用matplotlib輕松繪制股票K線圖
K線圖是看懂股票走勢(shì)的最基本知識(shí),K線分為陰線和陽(yáng)線,陰線和陽(yáng)線都包含了最低價(jià)、開(kāi)盤(pán)價(jià)、最高價(jià)和收盤(pán)價(jià),一般都K線如下圖所示:
在使用Python進(jìn)行股票分析的過(guò)程中,我們可以很容易的對(duì)K線圖進(jìn)行繪制,下面介紹兩種情形下的K線圖繪制:
1. 股票數(shù)據(jù)來(lái)源于Matplotlib:
# 導(dǎo)入需要的庫(kù) import tushare as ts import matplotlib.pyplot as plt import matplotlib.finance as mpf %matplotlib inline # 設(shè)置歷史數(shù)據(jù)區(qū)間 date1 = (2014, 12, 1) # 起始日期,格式:(年,月,日)元組 date2 = (2016, 12, 1) # 結(jié)束日期,格式:(年,月,日)元組 # 從雅虎財(cái)經(jīng)中獲取股票代碼601558的歷史行情 quotes = mpf.quotes_historical_yahoo_ohlc('601558.ss', date1, date2) # 創(chuàng)建一個(gè)子圖 fig, ax = plt.subplots(facecolor=(0.5, 0.5, 0.5)) fig.subplots_adjust(bottom=0.2) # 設(shè)置X軸刻度為日期時(shí)間 ax.xaxis_date() # X軸刻度文字傾斜45度 plt.xticks(rotation=45) plt.title("股票代碼:601558兩年K線圖") plt.xlabel("時(shí)間") plt.ylabel("股價(jià)(元)") mpf.candlestick_ohlc(ax,quotes,width=1.2,colorup='r',colordown='green') plt.grid(True)
繪制出來(lái)的K線圖如下:
2.股票數(shù)據(jù)來(lái)源于Tushare:
因?yàn)閺腡ushare中獲取到的數(shù)據(jù)為Pandas的DataFrame結(jié)構(gòu),需要將其轉(zhuǎn)換為matplotlib.finance.candlestick_ohlc()方法能夠處理的數(shù)據(jù)結(jié)構(gòu)。
from matplotlib.pylab import date2num import datetime # 對(duì)tushare獲取到的數(shù)據(jù)轉(zhuǎn)換成candlestick_ohlc()方法可讀取的格式 data_list = [] for dates,row in hist_data.iterrows(): # 將時(shí)間轉(zhuǎn)換為數(shù)字 date_time = datetime.datetime.strptime(dates,'%Y-%m-%d') t = date2num(date_time) open,high,low,close = row[:4] datas = (t,open,high,low,close) data_list.append(datas) # 創(chuàng)建子圖 fig, ax = plt.subplots() fig.subplots_adjust(bottom=0.2) # 設(shè)置X軸刻度為日期時(shí)間 ax.xaxis_date() plt.xticks(rotation=45) plt.yticks() plt.title("股票代碼:601558兩年K線圖") plt.xlabel("時(shí)間") plt.ylabel("股價(jià)(元)") mpf.candlestick_ohlc(ax,data_list,width=1.5,colorup='r',colordown='green') plt.grid()
同樣也能繪制會(huì)一樣的K線圖:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python+unittest+requests實(shí)現(xiàn)接口自動(dòng)化的方法
這篇文章主要介紹了python+unittest+requests實(shí)現(xiàn)接口自動(dòng)化的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11pandas中關(guān)于apply+lambda的應(yīng)用
本文主要介紹了pandas中關(guān)于apply+lambda的應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02人工神經(jīng)網(wǎng)絡(luò)算法知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家分享了人工神經(jīng)網(wǎng)絡(luò)算法的相關(guān)知識(shí)點(diǎn)以及原理介紹,需要的朋友們參考下。2019-06-06Python attrs提高面向?qū)ο缶幊绦试敿?xì)
Python是面向?qū)ο蟮恼Z(yǔ)言,一般情況下使用面向?qū)ο缶幊虝?huì)使得開(kāi)發(fā)效率更高,軟件質(zhì)量更好,并且代碼更易于擴(kuò)展,可讀性和可維護(hù)性也更高,但是Python的類(lèi)寫(xiě)起來(lái)是真的累,這是可以在創(chuàng)建類(lèi)的時(shí)候自動(dòng)添加上attrs模塊,下面文章我們就來(lái)介紹這個(gè)東西,需要的朋友可參考一下2021-09-09python同時(shí)遍歷數(shù)組的索引和值的實(shí)例
今天小編就為大家分享一篇python同時(shí)遍歷數(shù)組的索引和值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python計(jì)算機(jī)視覺(jué)opencv卡號(hào)識(shí)別示例詳解
這篇文章主要為大家介紹了python計(jì)算機(jī)視覺(jué)opencv卡號(hào)識(shí)別的實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下 希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Python如何從txt文件中提取特定數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于Python如何從txt文件中提取特定數(shù)據(jù)的相關(guān)資料,有時(shí)我們會(huì)遇到需要按行讀取文本的情況,我們要讀取txt文件獲得數(shù)據(jù),需要的朋友可以參考下2023-08-08python中的turtle庫(kù)函數(shù)簡(jiǎn)單使用教程
這篇文章主要介紹了python中的turtle庫(kù)函數(shù)簡(jiǎn)單使用教程。本文通過(guò)圖片的形式給大家展示的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07Python中的文件和目錄操作實(shí)現(xiàn)代碼
對(duì)于文件和目錄的處理,雖然可以通過(guò)操作系統(tǒng)命令來(lái)完成,但是Python語(yǔ)言為了便于開(kāi)發(fā)人員以編程的方式處理相關(guān)工作,提供了許多處理文件和目錄的內(nèi)置函數(shù)。重要的是,這些函數(shù)無(wú)論是在Unix、Windows還是Macintosh平臺(tái)上,它們的使用方式是完全一致的。2011-03-03