예제 #1
0
    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')
        
예제 #2
0
    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')
예제 #3
0
    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')