利用python—matplotlib绘制股票K线图

利用python—matplotlib绘制股票K线图

成品展示:

用Python绘制股票K线图并不复杂,不过得做好一些准备工作例如相关库的安装,库的引入、日期格式的调整and表格转换

安装库

#Windows命令行窗口中输入并执行命令
pip install https://github.com/matplotlib/mpl_finance/archive/master.zip

导入库

import tushare as ts 
import matplotlib.pyplot as plt
import mpl_finance as mpf
import seaborn as sns
sns.set()

数据获取

#获取股票数据
df = ts.get_k_data(000002,2021-01-01,2022-04-10)
df

时间格式调整And格式转换

结果 *由于通过tushare模块获取的数据中时间部分格式无法普配,需要使用时间格式调整函数将时间格式更改为我们能够使用的数据类型

#导入调整日期格式涉及的两个库
from matplotlib.pylab import date2num
import datetime
#将Tushare 库获取到的日期数据转换成Candlestick_ochi()函数可读取的格式
def date_to_num(dates):
    num_time = []
    for date in dates:
        date_time = datetime.datetime.strptime(date,%Y-%m-%d)
        num_date = date2num(date_time)
        num_time.append(num_date)
    return num_time
#将Dateframe 转换成二维数组,并利用date_to_num()函数转换成日期格式
df_arr = df.values
df_arr[:,0]= date_to_num(df_arr[:,0])#将二维数组中日期转换成数字格式

k线图与均线图的绘制

#k线图绘制
fig,ax=plt.subplots(figsize=(15,6))
mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup=r,colordown=g,alpha=1.0)
plt.grid(True)
ax.xaxis_date()

结运行结果:

    简单绘制后K线图便出来了,但与网站对比发现我们还缺少均线图
#添加均线图
df[MA5] = df[close].rolling(5).mean()
df[MA10] = df[close].rolling(10).mean()
#完整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.0)

#添加均线图
plt.plot(df_arr[:,0],df[MA5])#五日均线
plt.plot(df_arr[:,0],df[MA10])#十日均线
plt.grid(True)

plt.title(万科A)
plt.xlabel(日期)
plt.ylabel(价格)
ax.xaxis_date()
经验分享 程序员 微信小程序 职场和发展