Python学习第一课-----绘制股票分时图

1、序言

最近接触了Python语言,对其功能和编程甚感兴趣,无论是绘制冬奥期间的冰墩墩,还是与股票相关的量化策略,似乎这个编程语言无所不能,于是最近开始学习Python。

近期上证A股走势不太理想,2008年3000点保卫战,2022年还在3000点保卫战,作为一名想要翻身的韭菜(觉悟不行,合格的韭菜就应该好好生长,然后安心等着被割),还是想从量化角度去试试。作为初学者,还是先从绘制股票图形开始,今天先学习绘制分时图。

2、原理

绘制图形需要有数据来源,Python也不例外,本文所涉及的数据从聚宽投资获取,网站注册就可免费使用。导入numpy包、Pandas包和matplotlib,通过get_price函数可以得到我们需要的股票行情数据。再根据得到的数据进行绘图处理。

2.1、数据源获取

我们以平安银行(000001)为例,获取2022-04-29的数据,程序如下:

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
dataframe1=get_price('000001.XSHE',end_date='2022-04-30',frequency='minute',count=240)

程序解读:import为导入包,将numpy导入命名为np, pandas导入命名为pd,从matplotlib获取pyplot导入命名为plt。

二维数组dataframe1通过get_price()函数获取000001的数据,数据内容,截至日期2022-04-30,时间长度为1分钟,数量为240,即:获取的数据内容为2022-04-30前的240分钟行情数据,根据A股的时间,2022-04-29日为交易日,全天交易4个小时(240分钟),也就说该指令可以得到000001股票4月29日的行情数据。get_price()函数具体用法,读者可以自行查阅资料。

2.2、绘制图形程序

根据Python绘图指令,本文先测试了subplot()函数,程序如下:

myc1=dataframe1['close']           #获取每分钟的收盘价
myc2=dataframe1['volume']        #获取每分钟的成交量
plt.figure(figsize=(12,6))              #设置图形框大小
plt.subplot(2,1,1)                         
plt.plot(myc1,"-b")                       #图形框1,蓝色线绘制收盘价
plt.subplot(2,1,2)
plt.plot(myc2,"-r")                        #图形框2,红色线绘制成交量
plt.show()

2.3、subplot()函数运行结果

图中我们可以看到,分时图虽然绘出,但中间11:30-13:00之间的休息时间并没有跳过,因此需要再做处理,鉴于本人初学,查阅了不少资料及网站,未能结局,因此尝试改用其他函数处理 。

2.4、add_axes()函数

该函数为新增子区域函数,在这里的作用是添加两个图形框,两个框分别绘制分时图曲线和分时成交量,其原理与subplot()函数一致,不过add_axes()函数的X轴不再是时间轴,而是通过add_axes()定义,程序如下

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
fig, axes1 = plt.subplots(2, 1, figsize=(12,6))
dataframe1=get_price('000001.XSHE',end_date='2022-04-30',frequency='minute',count=240)
axes1[0].plot(list(dataframe1['close'])[1:],color='green')
axes1[1].plot(list(dataframe1['volume'])[1:],color='red')
axes1[0].set_title('平安银行分时图')
axes1[1].set_title('分时成交量')
plt.show()

2.5、add_axes()运行结果

 根据图形可以看出,add_axes()跳过了11:30-13:00休息的时间段,但其X轴也不再对应实际的时间轴。

3、综述

通过subplot()函数和add_axes()都可以将股票分时图绘制出来,但都存在一定的缺陷,所以还需要继续学习研究,也希望大佬指点经验,大家多沟通交流,哈!

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tnt1314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值