jqdatasdk 其中get_current_tick可以实时获取股票数据包括:
time 时间
current 当前价
high 当日最高价
low 当日最低价
volume 累计成交量
money 累计成交额
a1_v~a5_v 五档卖量
a1_p~a5_p 五档卖价
b1_v~b5_v 五档买量
b1_p~b5_p 五档买价
get_current_tick可以开通7天的试用权限,往后就。。。。嗯,不会只有一个手机号的GG
这样,我们for循环就可以做动图啦:
(会用到append()函数,因type为list,所以可以直接取[-31:-1],这样就可以保证动图始终只有30个数据,不会引起重叠)
需要在交易时间使用的时候把‘’‘ ‘’‘ 里的数据打开,改一下x轴数据就行了~
动图就不发啦~
import matplotlib.pyplot as pltfrom jqdatasdk import *auth()#账号密码import numpy as npax=[] #保存图1数据ay=[]bx=[] #保存图2数据by=[]num=0 #计数plt.ion() # 开启一个画图的窗口进入交互模式,用于实时更新数据# plt.rcParams['s*efig.dpi'] = 200 #图片像素# plt.rcParams['figure.dpi'] = 200 #分辨率plt.rcParams['figure.figsize'] = (10, 10) # 图像显示大小plt.rcParams['font.sans-serif']=['SimHei'] #防止中文标签乱码,还有通过导入字体文件的方法plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['lines.linewidth'] = 1 #设置曲线线条宽度while num<10000:plt.clf() #清除刷新前的图表,防止数据量过大消耗内存'''stock = get_current_tick('600519.XSHG') m = stock.volume n = stock.current q = stock.datetime'''n=np.random.uniform(20, 10)m=np.random.uniform(20, 10)#图表1ax.append(num) #追加x坐标值ay.append(n)ex = ax[-31:-1]ey = ay[-31:-1]#追加y坐标值agraphic=plt.subplot(2,1,1)agraphic.set_title('price') #添加子标题agraphic.set_xlabel('x轴',fontsize=10) #添加轴标签agraphic.set_ylabel('y轴', fontsize=20)plt.plot(ex,ey,'r') #等于agraghic.plot(ax,ay,'g-')#图表2bx.append(num)by.append(m)sx=bx[-31:-1]sy=by[-31:-1]bgraghic=plt.subplot(2, 1, 2)bgraghic.set_title('volume')bgraghic.plot(sx,sy,'r^')plt.pause(0.5) #设置暂停时间,太快图表无法正常显示num = num + 1plt.ioff() # 关闭画图的窗口,即关闭交互模式plt.show() # 显示图片,防止闪退