python 画K线图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 画K线图相关的知识,希望对你有一定的参考价值。
#数据源:http://pan.baidu.com/s/1hs5Wn0w
#要求:Matlibplot简单应用
#1.根据数据绘制出2017年6月~8月日线级别的价格走势K线。
#2.将MA5、MA10、MA20叠加至图中
import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.finance as mpf import datetime from matplotlib.pylab import date2num plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘] plt.rcParams[‘axes.unicode_minus‘] = False #读取数据并去掉多余数据 data=pd.read_csv(‘000001.SZ.csv‘,encoding=‘gbk‘,index_col=0).iloc[:-2,:4] #将索引调整为datetime格式 data.index=pd.to_datetime(data.index) #将分钟数据聚合为日数据 data_open=data.loc[:,‘开盘价(元)‘].resample(‘D‘).first().dropna() data_high=data.loc[:,‘最高价(元)‘].resample(‘D‘).max().dropna() data_low=data.loc[:,‘最低价(元)‘].resample(‘D‘).min().dropna() data_close=data.loc[:,‘收盘价(元)‘].resample(‘D‘).last().dropna() #将开盘、收盘、最高、最低数据合并,注意数据顺序,与candlestick_ochl一致 new_data=pd.concat([data_open,data_close,data_high,data_low],axis=1) #new_data=new_data.ix[‘2017-06‘:‘2017-08‘];print(new_data) #将日期索引调整到列 new_data=new_data.reset_index() #将日期转换为num格式 lst=[] for i in range(len(new_data)): lst.append(int(date2num(new_data.iloc[i,0]))) new_data[‘日期‘]=lst quotes=np.array(new_data) fig,ax=plt.subplots(figsize=(8,5)) mpf.candlestick_ochl(ax,quotes,width=1,colorup=‘g‘,colordown=‘r‘) #分别画出5日、10日、20日均线图 new_data.index=new_data[‘日期‘] pd.rolling_mean(new_data[‘收盘价(元)‘],5).plot() pd.rolling_mean(new_data[‘收盘价(元)‘],10).plot() pd.rolling_mean(new_data[‘收盘价(元)‘],20).plot() #将x轴设置为日期,调整x轴日期范围 ax.xaxis_date() ax.set_xlim(datetime.datetime(2017,6,1),datetime.datetime(2017,8,31)) plt.show()
以上是关于python 画K线图的主要内容,如果未能解决你的问题,请参考以下文章