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)

matplotlib绘制蜡烛图