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()