matplotlib绘制蜡烛图
matplotlib绘制蜡烛图
环境是Anaconda,mpl_finance需要单独安装
pip install mpl_finance
导入基本模块:
import numpy as np
import matplotlib.pyplot as plt
import mpl_finance as mpf
import pandas as pd
import datetime
import matplotlib.dates as mpd
%matplotlib inline
数据来源tushare,需要申请账号获得积分。
import tushare as ts
pro=ts.pro_api()
获取2019年1-2月浦发银行日线数据tushare获取日线行情
df=pro.daily(ts_code='600000.SH',start_date='20190101',end_date='20190228')
df_sort=df.sort_values('trade_date',ascending=True) #按时间顺序排序
获得数据按照mpl_finance要求处理,注意日期格式
quotes=[]
for i in range(len(df_sort)):
li=[]
datet=datetime.datetime.strptime(df.iloc[i]['trade_date'],'%Y%m%d') #字符串日期转换成日期格式
datef=mpd.date2num(datet) #日期转换成float days
open_p=df.iloc[i]['open']
close_p=df.iloc[i]['close']
high_p=df.iloc[i]['high']
low_p=df.iloc[i]['low']
li=[datef,open_p,close_p,high_p,low_p]
t=tuple(li)
quotes.append(t)
绘图:
fig,ax=plt.subplots()
mpf.candlestick_ochl(ax,quotes,width=0.2,colorup='r',colordown='g',alpha=1.0)
ax.xaxis_date()
plt.setp(plt.gca().get_xticklabels(),rotation=30)