使用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轴的刻度格式为常规日期格式
    

    绘制如图所示:

    物联沃分享整理
    物联沃-IOTWORD物联网 » python绘制股票k线图

    发表评论