Exemple #1
0
    def draw_2(self, id):

        data = libchart.get_chart_data(self.session,
                                       self.dt_start,
                                       self.dt_end,
                                       [[id, datetime.timedelta()]],
                                       daily=True)

        x = []
        y = []
        for k, v in data.iteritems():
            x.append(datetime.datetime.strptime(k, '%Y%m%d0000'))
            if v[0] is None:
                y.append(1)
            else:
                y.append(v[0])

        fig = plt.figure(figsize=(400 / 80, 200 / 80))
        ax = fig.add_subplot(1, 1, 1)
        ax.bar(x, y, width=0.4, align='center', color='blue')
        ax.grid(True, axis='y')

        ax.set_ylim(0)
        locator = AutoDateLocator()
        formatter = AutoDateFormatter(locator)
        formatter.scaled[(1.)] = '%m-%d'
        ax.xaxis.set_major_locator(locator)
        ax.xaxis.set_major_formatter(formatter)

        def yaxis_formatter(y, pos):
            def r(i):
                i = round(i, 2)
                if i == int(i):
                    i = int(i)
                return i

            if y < 1e3:
                return int(y)
            elif y < 1e6:
                return '%sK' % r(y / 1e3)
            else:
                return '%sM' % r(y / 1e6)

        ax.yaxis.set_major_formatter(FuncFormatter(yaxis_formatter))

        for tick in ax.xaxis.get_major_ticks():
            tick.label1.set_size(9)
        for tick in ax.yaxis.get_major_ticks():
            tick.label1.set_size(9)

        f = StringIO.StringIO()
        fig.savefig(f)
        plt.close()
        f.seek(0)
        return f
Exemple #2
0
    def draw_2(self, id):

        data = libchart.get_chart_data(self.session, self.dt_start, self.dt_end, [[id, datetime.timedelta()]], daily=True)

        x = []
        y = []
        for k, v in data.iteritems():
            x.append(datetime.datetime.strptime(k, '%Y%m%d0000'))
            if v[0] is None:
                y.append(1)
            else:
                y.append(v[0])

        fig = plt.figure(figsize=(400 / 80, 200 / 80))
        ax = fig.add_subplot(1, 1, 1)
        ax.bar(x, y, width=0.4, align='center', color='blue')
        ax.grid(True, axis='y')

        ax.set_ylim(0)
        locator = AutoDateLocator()
        formatter = AutoDateFormatter(locator)
        formatter.scaled[(1.)] = '%m-%d'
        ax.xaxis.set_major_locator(locator)
        ax.xaxis.set_major_formatter(formatter)

        def yaxis_formatter(y, pos):

            def r(i):
                i = round(i, 2)
                if i == int(i):
                    i = int(i)
                return i

            if y < 1e3:
                return int(y)
            elif y < 1e6:
                return '%sK' % r(y / 1e3)
            else:
                return '%sM' % r(y / 1e6)

        ax.yaxis.set_major_formatter(FuncFormatter(yaxis_formatter))

        for tick in ax.xaxis.get_major_ticks():
            tick.label1.set_size(9)
        for tick in ax.yaxis.get_major_ticks():
            tick.label1.set_size(9)

        f = StringIO.StringIO()
        fig.savefig(f)
        plt.close()
        f.seek(0)
        return f
Exemple #3
0
    def draw_1(self, id):

        data = libchart.get_chart_data(self.session, self.dt_start,
                                       self.dt_end,
                                       [[id, datetime.timedelta()]])

        x = []
        y = []
        for k, v in data.iteritems():
            x.append(datetime.datetime.strptime(k, '%Y%m%d%H%M'))
            y.append(v[0])

        if y[0] is None:
            y[0] = 0
        if y[-1] is None:
            y[-1] = 0

        fig = plt.figure(figsize=(1024 / 80, 300 / 80))
        ax = fig.add_subplot(1, 1, 1)
        ax.plot(x, y, color='blue')
        ax.grid(True, axis='y')

        ax.set_ylim(0)

        locator = AutoDateLocator()
        formatter = AutoDateFormatter(locator)
        formatter.scaled[(1.)] = '%Y-%m-%d'
        ax.xaxis.set_major_locator(locator)
        ax.xaxis.set_major_formatter(formatter)

        for tick in ax.xaxis.get_major_ticks():
            tick.label1.set_size(9)
        for tick in ax.yaxis.get_major_ticks():
            tick.label1.set_size(9)

        f = StringIO.StringIO()
        fig.savefig(f, bbox_inches='tight')
        plt.close()
        f.seek(0)
        return f
Exemple #4
0
    def draw_1(self, id):

        data = libchart.get_chart_data(self.session, self.dt_start, self.dt_end, [[id, datetime.timedelta()]])

        x = []
        y = []
        for k, v in data.iteritems():
            x.append(datetime.datetime.strptime(k, '%Y%m%d%H%M'))
            y.append(v[0])

        if y[0] is None:
            y[0] = 0
        if y[-1] is None:
            y[-1] = 0

        fig = plt.figure(figsize=(1024 / 80, 300 / 80))
        ax = fig.add_subplot(1, 1, 1)
        ax.plot(x, y, color='blue')
        ax.grid(True, axis='y')

        ax.set_ylim(0)

        locator = AutoDateLocator()
        formatter = AutoDateFormatter(locator)
        formatter.scaled[(1.)] = '%Y-%m-%d'
        ax.xaxis.set_major_locator(locator)
        ax.xaxis.set_major_formatter(formatter)

        for tick in ax.xaxis.get_major_ticks():
            tick.label1.set_size(9)
        for tick in ax.yaxis.get_major_ticks():
            tick.label1.set_size(9)

        f = StringIO.StringIO()
        fig.savefig(f, bbox_inches='tight')
        plt.close()
        f.seek(0)
        return f
Exemple #5
0
        dt_end = datetime.datetime.strptime(request.params['end'], '%Y-%m-%d %H:%M')
        if dt_end - dt_start < datetime.timedelta(minutes=5):
            dt_end = dt_start + datetime.timedelta(minutes=5)

        daily = request.params.get('daily') == 'true'
        if daily and dt_end - dt_start < datetime.timedelta(days=7):
            dt_end = dt_start + datetime.timedelta(days=7)

    except Exception, e:
        return util.output('error', msg='参数不正确')

    chart_list = []
    for index, id in enumerate(id_list):
        chart_list.append([id, datetime.timedelta(days=delta_list[index])])

    data = libchart.get_chart_data(sakuya_db, dt_start, dt_end, chart_list, daily=daily)

    result = []
    for dt_key, series in data.iteritems():
        dt = datetime.datetime.strptime(dt_key, '%Y%m%d%H%M')
        item = [int(time.mktime(dt.timetuple())) * 1000]
        #series = [1,2,4,5]
        item.extend(series)
        result.append(item)
    
    return json.dumps(result)

@app.post('/chart/ack/<id:int>')
def ack(sakuya_db, id):

    def error(msg):
Exemple #6
0
            dt_end = dt_start + datetime.timedelta(minutes=5)

        daily = request.params.get('daily') == 'true'
        if daily and dt_end - dt_start < datetime.timedelta(days=7):
            dt_end = dt_start + datetime.timedelta(days=7)

    except Exception, e:
        return util.output('error', msg='参数不正确')

    chart_list = []
    for index, id in enumerate(id_list):
        chart_list.append([id, datetime.timedelta(days=delta_list[index])])

    data = libchart.get_chart_data(sakuya_db,
                                   dt_start,
                                   dt_end,
                                   chart_list,
                                   daily=daily)

    result = []
    for dt_key, series in data.iteritems():
        dt = datetime.datetime.strptime(dt_key, '%Y%m%d%H%M')
        item = [int(time.mktime(dt.timetuple())) * 1000]
        #series = [1,2,4,5]
        item.extend(series)
        result.append(item)

    return json.dumps(result)


@app.post('/chart/ack/<id:int>')