码迷,mamicode.com
首页 > 编程语言 > 详细

python 画K线图

时间:2017-10-10 17:51:29      阅读:660      评论:0      收藏:0      [点我收藏+]

标签:a20   rcp   日期   data   show   应用   sim   close   nic   

#数据源: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线图

标签:a20   rcp   日期   data   show   应用   sim   close   nic   

原文地址:http://www.cnblogs.com/bawu/p/7646753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!