1.参考
2.数据来源
CL
USO
OIL
3.代码
#encoding='utf-8'
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import sys
import time
print('{:<10}: {}'.format('python',sys.version))
print('{:<10}: {}'.format('pandas',pd.__version__))
print('{:<10}: {}'.format('numpy',np.__version__))
print('{:<10}: {}'.format('matplotlib',matplotlib.__version__))
# python : 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]
# pandas : 0.20.2
# numpy : 1.13.0
# matplotlib: 2.0.2
df_cl = pd.read_csv('CL.csv',na_values=['-'],index_col='日期',parse_dates=['日期'],encoding='gbk')
df_uso = pd.read_csv('USO.csv',na_values=['null'],index_col='Date',parse_dates=['Date'])
df_oil = pd.read_csv('OIL.csv',na_values=['null'],index_col='Date',parse_dates=['Date'])
# 传入由Series组成的字典
df_merge = pd.DataFrame({'CL':df_cl['最新股价'],'USO':df_uso['Adj Close'],'OIL':df_oil['Adj Close']},columns=['CL','USO','OIL'])
# 对不同的列填充不同的值
# df_merge_fillna = df_merge.fillna({'CL':df_cl['最新股价'][0],'USO':df_uso['Adj Close'][0],'OIL':df_oil['Adj Close'][0]})
df_merge_deal_na = df_merge.dropna()
# plt.figure(1)
ax1 = plt.subplot(211)
ax2 = plt.subplot(212)
# plt.sca(ax1)
# plt.plot(df_uso['Adj Close'])只支持index 0 1 2
# ax1.set_ylim([0,150])
df_cl['最新股价'].plot(ax=ax1,yticks=range(0,150,10),grid=True)
df_merge_deal_na.plot(ax=ax2)
plt.show()
# 需要手动关闭作图窗口才能继续,如果ctrl+c会导致作图窗口无响应
# plt.clf()
# 如果关闭了图表窗口,则无法使用savefig()保存图像。
# http://hyry.dip.jp/tech/book/page/scipy/matplotlib_fast_plot.html
ax1 = plt.subplot(211)
ax2 = plt.subplot(212)
df_cl['最新股价'].plot(ax=ax1,yticks=range(0,150,10),grid=True)
df_merge_deal_na.plot(ax=ax2)
plt.savefig('result_{}.png'.format(time.strftime('%m%d_%H%M')), dpi=200)
4.结果
