1. 数据导入
import numpy as np import pandas as pd import matplotlib.pyplot as plt import tushare as ts from datetime import datetime import matplotlib.dates as mdates from matplotlib.dates import AutoDateLocator
2.数据获取
data = ts.get_hist_data('000012',start='2015-06-23',end='2017-11-16')
3.坐标轴处理
# 生成横纵坐标信息 data_time = data.index data_time_translation = [datetime.strptime(d, '%Y-%m-%d').date() for d in data_time] data_close = data['close'].values # 配置时间坐标轴 plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d')) # 显示时间坐标的格式 autodates = AutoDateLocator() # 时间间隔自动选取 plt.gca().xaxis.set_major_locator(autodates)
4. 画一个图
# 画图 plt.plot(data_time_translation, data_close,'b',lw=2.5) plt.gcf().autofmt_xdate() # 自动旋转日期标记 plt.grid(True) plt.axis("tight") plt.xlabel('Time',size=20) plt.ylabel('Close price',size=20) plt.title('000012',size=20) plt.show()
5.画多个图
# 绘图 plt.plot(data_time_translation,data['open'].values,lw=1.5,label="open",color='blue') plt.plot(data_time_translation,data['high'].values,label="high",color='red',lw=1.5) plt.plot(data_time_translation,data['close'].values,lw=1.5,label="close",color='green') plt.plot(data_time_translation,data['low'].values,lw=1.5,label="low",color='yellow') # 自动旋转日期标记 plt.gcf().autofmt_xdate() # 绘图细节 plt.grid(True) plt.axis("tight") plt.xlabel('Time',size=20) plt.ylabel('Price',size=20) plt.title('000012',size=20) # 添加图例 plt.legend(loc=0) plt.show()
6.分开显示两个图。
# 绘图 plt.figure(figsize=(7,5)) # 确定图片大小 plt.subplot(211) # 确定第一个图的位置 plt.plot(data_time_translation,data['close'].values,'b',label="1st") plt.grid(True) plt.axis('tight') plt.ylabel('Values',size=20) plt.title("000012") plt.legend(loc=0) plt.subplot(212) # 确定第2个图的位置 plt.bar(data_time_translation,data['volume'].values,width = 0.2,color='g',label="2nd") # 直方图的画法 plt.grid(True) plt.xlabel("Time",size=20) plt.ylabel("Volume",size=20) plt.legend(loc=0) plt.gcf().autofmt_xdate() plt.show()