上一期介绍了k线图的简单绘制,可以实现股票趋势的查看分析
本期介绍一种用python matplotlib实现高仿同花顺界面的绘图方法
一、话不多说上效果图(还是以601011宝泰隆为例哈^^)
二、代码(python 3.7)
# 参考博文:https://blog.csdn.net/PeakGao/article/details/105634317?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase
# 参考博文博主:peakgao
# auther:懒兔子
# 编程环境:anaconda - Jupyter notebook
import tushare as ts
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt #绘图
import matplotlib.ticker as ticker #日期刻度定制
import mplfinance as mpf #金融图形
from matplotlib import colors as mcolors #渲染顶点颜色格式
from matplotlib.collections import LineCollection,PolyCollection
pro = ts.pro_api()
# API括号内,请输入自己的‘tushare token’哦,申请方法详见上上篇懒兔子的博文:量化之路-数据采集-从tushareAPI获取股票数据信息并导出至excel
# tushare介绍博文链接:https://zhuanlan.zhihu.com/p/149754616
df = pro.daily(ts_code='601011.SH', start_date='20180101', end_date='20200622')
df # 用的Juppyter notebook,此处断点查看下获取的数据状况
df.drop(df.columns[[0,6,7,8,10]],axis=1,inplace=True) #二维数据两个括号 剔除多余的列
df # 用的Juppyter notebook,此处断点查看下获取的数据整理状况
# 在k线基础上计算MACD,并将结果存储在df上面(dif,dea,bar)
def calc_macd(df, fastperiod=12, slowperiod=26, signalperiod=9):
ewma12 = df['close'].ewm(span=fastperiod,adjust=False).mean()
ewma26 = df['close'].ewm(span=slowperiod,adjust=False).mean()
df['dif'] = ewma12-ewma26
df['dea'] = df['dif'].ewm(span=signalperiod,adjust=False).mean()
df['bar'] = (df['dif']-df['dea'])*2
return df
# 在k线基础上计算KDF,并将结果存储在df上面(k,d,j)
def calc_kdj(df):
low_list = df['low'].rolling(9, min_periods=9).min()
low_list.fillna(value=df['low&#