使用python绘制股票k线图

1. 需要安装的包

  • tushare
  • matplotlib
  • mpl_finance
  • datetime
    使用Anaconda Prompt安装,安装语句’pip install 包的名字’

2. 获取数据
使用tushare包导入数据

import tushare as ts
df=ts.get_k_data('000002',start='2019-06-01',end='2019-09-30')

第一个参数’000002‘为股票代码,第二个参数start表示起始时间,第三个参数end表示结束日期。获取的数据df为DataFrame格式的二维表格。

3.调整日期格式
因绘制股票k线图使用的是mpl_finance库candlestick_ochl函数,该函数只能读取数组格式的数据,且其日期数据必须是特定的数字格式,因此,需要对原始数据中的日期数据进行格式的调整,调整代码如下:

import datetime
from matplotlib.pylab import date2num
#定义转换函数
def date_to_num(dates):
    num_time=[]
    for date in dates:
    	date_time=datetime.datetime.strptime(date,'%Y-%m-%d'))
        num_date =date2num(date)
        num_time.append(num_date)
    return num_time

将df数据转换为二维数组,并调用date_to_num函数更改日期格式,代码如下:

df_arr=df.values
df_arr[:,0]=date_to_num(df_arr[:,0])

4. 使用python绘制股票k线图
使用mpl_finance库的candlestick_ochl函数,candlestick_ochl函数中的第一个参数ax表示画布子图的名称,第二个参数df_arr表示股价历史数据,第三个参数width表示k线柱的宽度,colorup表示收盘价高于开盘价时柱形的颜色,colordown表示收盘价低于开盘价时的柱形颜色(国内股价使用红色表示涨,绿色表示跌,美股相反因此需要说明这两个参数),alpha表示柱形的颜色透明度。

fig,ax=plt.subplots(figsize=(15,6))

mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup='r',colordown='g',alpha=1)#绘制k线图

plt.grid(True)#绘制网格
ax.xaxis_date()#设置x轴的刻度格式为常规日期格式

绘制k线图如下:
在这里插入图片描述
5.添加均线图
为k线图分别添加5日均线和10日均线。
使用rolling函数和mean函数计算5日均线和10日均线数据,代码如下:

df['M5']=df['close'].rolling(5).mean()#5日均线
df['M10']=df['close'].rolling(10).mean()#10日均线

6.为k线图添加日均线图、图标题、坐标轴标签

plt.rcParams['font.sans-serif']=['Simhei']#设置正常显示中文

fig,ax=plt.subplots(figsize=(15,6))

mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup='r',colordown='g',alpha=1)#绘制k线图

plt.plot(df_arr[:,0],df['M5'])#绘制5日均线
plt.plot(df_arr[:,0],df['M10'])#绘制10日均线

plt.grid(True)#绘制网格线

plt.title('万科A')#设置标题
plt.xlabel('日期')#设置x轴标签
plt.ylabel('价格')#设置y轴标签

ax.xaxis_date()#设置x轴的刻度格式为常规日期格式

绘制如图所示:

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐