wind pandas 数据分析绘图
2016-08-15 08:45
218 查看
#!/usr/bin/env python #coding:utf-8 from WindPy import w from datetime import datetime from pandas.tseries.offsets import Day from pandas import Series from pandas import DataFrame import pandas as pd import matplotlib.pyplot as plt import numpy as np #plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 #plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 period_day=60 Long='1701' Short='1609' #varieties=['M.DCE','Y.DCE','P.DCE','JD.DCE','L.DCE','J.DCE','JM.DCE','I.DCE','SR.CZC','CF.CZC','FG.CZC','MA.CZC','RM.CZC','TA.CZC','RU.SHF','RB.SHF'] varieties=['M.DCE','Y.DCE','P.DCE','JD.DCE','L.DCE','J.DCE','JM.DCE','I.DCE','SR.CZC','CF.CZC','FG.CZC','MA.CZC','RM.CZC','TA.CZC','RB.SHF'] #varieties=['P.DCE','CF.CZC','FG.CZC','MA.CZC','RM.CZC'] dfall=DataFrame() def generate_pd(contracts): #wsd_data=w.wsd(contracts, "close", (datetime.now()-period_day*Day()).strftime('%Y-%m-%d'), datetime.now().strftime('%Y-%m-%d'), "") wsd_data=w.wsd(contracts, "close", (datetime.now()-period_day*Day()), datetime.now(), "") df=DataFrame(wsd_data.Data,index=wsd_data.Codes,columns=wsd_data.Times) df=df.T #df.index=Series(df.index).dt.strftime('%Y-%m-%d') #df=DataFrame({wsd_data.Codes[0]:wsd_data.Data[0], wsd_data.Codes[1]:wsd_data.Data[1], wsd_data.Codes[2]:wsd_data.Data[2], wsd_data.Codes[3]:wsd_data.Data[3]}, columns=contracts, index=Series(wsd_data.Times).dt.strftime('%Y-%m-%d')) df.ix[:,0]=df.ix[:,0]-df.ix[:,1] #del df[contracts[1]] dfall[(contracts[0][:-4]+'-'+contracts[1][:-4])]=df.ix[:,0] def main(): w.start() for varity in varieties: contracts=[] if varity[-3:]=='CZC': contracts.append(varity[:-4]+Long[-3:]+varity[-4:]) contracts.append(varity[:-4]+Short[-3:]+varity[-4:]) else: contracts.append(varity[:-4]+Long+varity[-4:]) contracts.append(varity[:-4]+Short+varity[-4:]) generate_pd(contracts) plt.ioff() #是否显示图片 dfall.dropna(inplace=True) dfall.plot(grid=True, title=Long+'-'+Short, figsize=(25,12), alpha=0.618) for i in range(len(dfall.columns)): plt.annotate(filter(str.isalpha,str(dfall.columns[i][0:2])), xy=(dfall.index[-3-i], dfall.ix[-3-i,i]), xytext=(dfall.index[-5-i], dfall.ix[-3-i,i]),arrowprops=dict(arrowstyle="-"),color='r') #dfall.to_excel('futures_spread.xlsx') plt.savefig('futures_spread.png',dpi=128) #plt.xticks(pd.date_range(dfall.index[0],dfall.index[-1],freq='D')) if __name__ == '__main__': main()
相关文章推荐
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- 数据分析之Pandas-03绘图函数
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- Python数据分析工具包:Pandas
- 使用pandas处理数据并绘图的例子
- 利用python进行数据分析之绘图和可视化
- 科学绘图、数据分析经典软件--Origin
- 数据分析框架Pandas进阶
- 利用python进行数据分析之pandas库的应用(二)
- 利用python进行数据分析之pandas库的应用(一)
- 数据分析框架Pandas入门
- 利用Python进行数据分析--绘图和可视化
- Python 数据分析包:pandas 基础
- matplotlib -- 使用python中的matplotlib进行绘图分析数据
- Pandas数据分析基础
- Origin 9.0科技绘图与数据分析超级学习手册 上市
- 【Python】Python的数据分析(四)——数据及绘图
- 【Python】Python的数据分析(二)——pandas安装及使用
- Python 数据分析-pandas 基础
- Python点滴(三)—pandas数据分析与matplotlib画图