參考:https://blog.csdn.net/u014281392/article/details/73611624
import matplotlib.pyplot as plt ## 導入畫圖模塊 from matplotlib.pylab import date2num ## 導入日期到數值一一對應的轉換工具 from dateutil.parser import parse ## 導入轉換到指定格式日期的工具 import mpl_finance as mpf ## 導入 mpl_finance 模塊 import tushare as ts from matplotlib.pylab import date2num import datetime code = '000001' wdyx = ts.get_k_data(code,start='2019-10-01', end='2020-01-01') # 日期, 開盤, 收盤, 最高, 最低, 成交量, 代碼 print(wdyx[:3]) def date_to_num(dates): num_time = [] for date in dates: date_time = datetime.datetime.strptime(date,'%Y-%m-%d') num_date = date2num(date_time) num_time.append(num_date) return num_time # dataframe轉換為二維數組 mat_wdyx = wdyx.iloc[:,:].values num_time = date_to_num(mat_wdyx[:,0]) mat_wdyx[:,0] = num_time print(mat_wdyx[:3]) # 主要參數介紹: # ax:Axes(軸)對象或Axes(軸)對象數組 # quotes:是傳入的數據,數據的前五列要保持和函數規定的一樣 # colorup:表示收盤價格>=開盤價格,其圖表設置的顏色 # colordown:表示收盤價格<開盤價格,其圖表設置的顏色 fig, (ax1, ax2) = plt.subplots(2,figsize=(15,8)) mpf.candlestick_ochl(ax1, mat_wdyx, width=0.6, colorup='g', colordown='r', alpha=1.0) # 設置日期刻度旋轉的角度 # ax1.xticks(rotation=30) ax1.set_title(code) ax1.set_ylabel('Price') ax1.grid(True) # x軸的刻度為日期 ax1.xaxis_date () plt.bar(mat_wdyx[:,0]-0.25, mat_wdyx[:,5], width= 0.5) ax2.set_ylabel('Volume') # x軸的刻度為日期 ax2.xaxis_date() ax2.grid(True) plt.show()