引入類庫
import matplotlib as mpl import tushare as ts import matplotlib.pyplot as plt import matplotlib.finance as mpf from matplotlib import rc from matplotlib.pylab import date2num from datetime import datetime, timedelta
設置取k線的時間
today = datetime.now().strftime('%Y-%m-%d') before = (datetime.now() - timedelta(days = 120)).strftime('%Y-%m-%d') #120自然日,大概80個交易日
獲取行情數據
#獲取行情數據,格式: pandas.core.frame.DataFrame code = '000063' tsla_df = ts.get_k_data(code, start = before, end = today) # print(tsla_df)
''' 蠟燭圖的日期,不支持普通的YYYY-MM-DD格式 要使用matplotlib.finance.date2num進行轉換為特有的數字值 ''' qutotes = [] for _, (d, o, c, h, l) in enumerate( zip(tsla_df.date, tsla_df.open, tsla_df.close, tsla_df.high, tsla_df.low)): d = mpf.date2num(datetime.strptime(d,'%Y-%m-%d')) # 日期,開盤,收盤,最高,最低組成tuple對象val val = (d, o, h, l, c) # 加val加入qutotes qutotes.append(val)
fig, ax = plt.subplots(figsize=(15,5)) #設置圖片大小 fig.subplots_adjust(bottom=0.5) #調整畫框的位置,用來消除白邊 ax.xaxis_date() # X軸的刻度為日期 plt.xticks(rotation=45) # 設置日期刻度旋轉的角度 plt.title(code) # 設置圖片標題 plt.xlabel('Date') # 設置X軸標題 plt.ylabel('Price') # 設置Y軸標題 plt.grid(True) # 顯示網格 mpf.candlestick_ohlc(ax, qutotes, width=0.6, colorup='g', colordown='r', alpha=1.0) plt.show()

