def draw(self, number, length = CANDLE_FIG_LENGTH): reader = Reader(number) series = [[] for x in xrange(7)] # Candle Stick candle_sticks = [] idx = -1 while True: idx +=1 row = reader.getInput() if row == None: break for i in [1, 3, 4, 5, 6]: series[i].append(float(row[i])) # matplotlib 的 candlestick_ohlc 依序放入 [編號, 收盤, 最高, 最低, 開盤] 會畫出 K 線圖 candle_sticks.append(( idx, float(row[6]), float(row[4]), float(row[5]), float(row[3]) )) bool_up_series, ma_series, bool_down_series = self._getBooleanBand(series[6]) # Draw Figure line_width = CANDLE_FIG_LINE_WIDTH fig, axarr = plt.subplots(2, sharex=True) candlestick_ohlc(axarr[0], candle_sticks[-length:], width=CANDLE_STICK_WIDTH) x_axis = range(len(series[6])) # set zorder 讓 candlestick 可以在上面 axarr[0].plot(x_axis[-length:], ma_series[-length:], c='#00ff00', ls='-', lw=line_width, zorder=-5) axarr[0].plot(x_axis[-length:], bool_up_series[-length:], c='#ff0000', ls='-', lw=line_width, zorder=-4) axarr[0].plot(x_axis[-length:], bool_down_series[-length:], c='#0000ff', ls='-', lw=line_width, zorder=-3) axarr[0].plot(x_axis[-length:], series[4][-length:], c='#ff3399', ls='-', lw=line_width, zorder=-2) axarr[0].plot(x_axis[-length:], series[5][-length:], c='#0099ff', ls='-', lw=line_width, zorder=-1) axarr[0].set_title(self._getFigTitle(number)) axarr[1].plot(x_axis[-length:], series[1][-length:], c='#000000', ls='-', lw=line_width) # set figure arguments fig.set_size_inches(FIGURE_WIDTH, FIGURE_HEIGHT) # output figure fig.savefig(CANDLE_FIG_PATH+'/'+number+'.png', dpi=FIGURE_DPI) plt.clf() plt.close('all')
def draw(self, number, length=SIMPLE_FIG_LENGTH): reader = Reader(number) series = [] while True: row = reader.getInput() if row == None: break series.append(float(row[6])) x_axis = range(len(series[-SIMPLE_FIG_LENGTH:])) plt.plot(x_axis, series[-SIMPLE_FIG_LENGTH:], 'b--', ls='-') plt.title(self._getFigTitle(number)) # set figure fig = plt.gcf() fig.set_size_inches(FIGURE_WIDTH, FIGURE_HEIGHT) # output figure fig.savefig(join(SIMPLE_FIG_PATH, number + '.png'), dpi=FIGURE_DPI) plt.clf() plt.close('all')
def draw(self, number, length = SIMPLE_FIG_LENGTH): reader = Reader(number) series = [] while True: row = reader.getInput() if row == None: break series.append(float(row[6])) x_axis = range(len(series[-SIMPLE_FIG_LENGTH:])) plt.plot(x_axis, series[-SIMPLE_FIG_LENGTH:], 'b--', ls='-') plt.title(self._getFigTitle(number)) # set figure fig = plt.gcf() fig.set_size_inches(FIGURE_WIDTH, FIGURE_HEIGHT) # output figure fig.savefig(join(SIMPLE_FIG_PATH, number+'.png'), dpi=FIGURE_DPI) plt.clf() plt.close('all')