Esempio n. 1
0
def create_simple_pie():
    global slee

    data_m = slee['time']
    train_data_m = np.array(data_m)
    train_t_list = train_data_m.tolist()  # list

    data_m = slee['ti']
    train_data_m = np.array(data_m)
    train_w_list = train_data_m.tolist()  # list

    slee['ti'] = slee['ti'] * 0.85
    data_m = slee['ti']
    train_data_m = np.array(data_m)
    train_l_list = train_data_m.tolist()  # list

    data_m = slee['wear_type']
    train_data_m = np.array(data_m)
    train_k_list = train_data_m.tolist()  # list

    bar = Bar("睡眠数据", '有效时长:', height=360)
    bar.add("时长/s",
            train_t_list,
            train_w_list,
            yaxis_max=20,
            yaxis_min=0,
            bar_category_gap=-10,
            legend_top="5%")
    #bar.add("校正后/s", train_t_list, train_l_list, yaxis_max=20, yaxis_min=0,bar_category_gap=-20,legend_top="5%")

    bar1 = Bar("佩戴状态", title_top="35%")
    bar1.add("佩戴状态",
             train_t_list,
             train_k_list,
             legend_top="35%",
             bar_category_gap=0)

    grid = Grid()
    grid.add(bar, grid_top="10%", grid_bottom="70%")
    grid.add(bar1, grid_top="40%", grid_bottom="35%")

    grid.renderer = 'svg'
    return grid
Esempio n. 2
0
def Data_for_static():
    global username
    global date_pro
    global name
    global str_path
    global rate_save
    global day
    global temp_static
    global checklist

    year = int(str(date_pro)[0:4])
    month = int(str(date_pro)[5:7])
    day = int(str(date_pro)[8:10])
    lastDay = getMonthFirstDayAndLastDay(year, month)
    str_date2 = str(year) + '-' + str(month) + '-' + str(1)
    str_date1 = str(year) + '-' + str(month) + '-' + str(lastDay)

    if len(rate_save) > 15 and rate_save.iloc[
            0, 4] == username and rate_save.iloc[
                1, 4] == month and day == rate_save.iloc[2, 4]:
        rate_save['username'] = username
    else:
        if len(rate_save) > 15 and rate_save.iloc[
                0, 4] == username and rate_save.iloc[1, 4] == month:
            rate_save['username'] = username
        else:
            cnt = 0
            while cnt <= 2:
                if name == 0:
                    str_path = str_path2
                    name = 1
                elif name == 1:
                    str_path = str_path1
                    name = 2
                else:
                    str_path = str_path3
                    name = 0

                if cnt <= 0:
                    temp_static = Scrapy(str_date1, str_date2)
                else:
                    df2 = Scrapy(str_date1, str_date2)
                    temp_static = pd.merge(temp_static, df2, how='outer')
                cnt = cnt + 1

            temp_static['date'] = temp_static['datetime'].map(Time_get(0))
            temp_static['Hour'] = temp_static['datetime'].map(Time_get(1))

            rate_save = pd.DataFrame(np.arange(lastDay + 1),
                                     columns=['timesta'])
            rate_save['rate'] = 0
            rate_save['rate_night'] = 0
            rate_save['rate_day'] = 0
            rate_save['username'] = username
            rate_save.iloc[1, 4] = month
            rate_save.iloc[2, 4] = day

        start, end = Choose_time(checklist)

        for i in range(lastDay):
            da = temp_static[temp_static['date'] == i]

            data = da[da['wear_type'] == 1]

            rate = Get_rate(data)

            data_night1 = data[data['Hour'] <= start]
            data_night2 = data[data['Hour'] >= end]
            data_night = pd.merge(data_night1, data_night2, how='outer')
            rate_night = Get_rate(data_night)

            data_day = data[data['Hour'] > start]
            data_day = data_day[data_day['Hour'] < end]
            rate_day = Get_rate(data_day)

            rate_save.iloc[i, 0] = i
            rate_save.iloc[i, 1] = rate
            rate_save.iloc[i, 2] = rate_night
            rate_save.iloc[i, 3] = rate_day

    rate1 = rate_save[rate_save['rate'] > 0]['rate'].mean()
    rate1 = float('%.2f' % rate1)
    rate2 = rate_save[rate_save['rate_night'] > 0]['rate_night'].mean()
    rate2 = float('%.2f' % rate2)
    rate3 = rate_save[rate_save['rate_day'] > 0]['rate_day'].mean()
    rate3 = float('%.2f' % rate3)

    data_m = rate_save['timesta']
    train_data_m = np.array(data_m)
    train_k_list = train_data_m.tolist()  # list

    data_m = rate_save['rate']
    train_data_m = np.array(data_m)
    train_l_list = train_data_m.tolist()  # list

    data_m = rate_save['rate_night']
    train_data_m = np.array(data_m)
    train_m_list = train_data_m.tolist()  # list

    data_m = rate_save['rate_day']
    train_data_m = np.array(data_m)
    train_n_list = train_data_m.tolist()  # list

    strplot = '数据有效率:' + str(rate1) + '% 晚间(' + str(end) + ':00--' + str(
        start) + ':00)有效率:' + str(rate2) + '% 白天(' + str(
            start) + ':00--' + str(end) + ':00)有效率:' + str(rate3) + '%'
    str1 = username + '-' + title + '--' + str(year) + '年' + str(
        month) + '月' + '  ' + strplot

    bar = Bar("数据有效率统计(%)", str1)
    bar.add("有效率/%", train_k_list, train_l_list, xaxis_min=1, legend_top="5%")

    bar1 = Bar("晚间数据有效率统计(%)", title_top="30%")
    bar1.add("rate_night/%",
             train_k_list,
             train_m_list,
             xaxis_min=1,
             legend_top="30%")
    bar1.add("rate_day/%",
             train_k_list,
             train_n_list,
             xaxis_min=1,
             legend_top="30%")

    bar2 = Bar("白天数据有效率统计(%)", title_top="55%")
    bar2.add("rate_day /%",
             train_k_list,
             train_n_list,
             xaxis_min=1,
             legend_top="55%")

    grid = Grid()

    grid.add(bar, grid_top="10%", grid_bottom="75%")
    grid.add(bar1, grid_top="35%", grid_bottom="50%")
    grid.add(bar2, grid_top="60%", grid_bottom="25%")

    grid.renderer = 'svg'
    return grid
Esempio n. 3
0
def create_simple_kline():
    global username
    global temp_spo2
    global temp3
    global date_pro
    global rate_all
    global rate_night1
    global rate_day1
    global checklist
    global title
    global da

    temp_spo2 = Data_martix(da)

    if len(temp_spo2) > 1:
        train_x_list = data_to_list_spo2(temp_spo2, 'timestamp')
        train_y_list = data_to_list_spo2(temp_spo2, 'spo2')
        train_z_list = data_to_list_spo2(temp_spo2, 'hr')

        temp_spo3 = temp_spo2[temp_spo2['healthindex'] > 0]
        data_x = temp_spo3['healthindex']
        train_data = np.array(data_x)
        train_e_list = train_data.tolist()  # list

        data_x = temp_spo3['timestamp']
        train_data = np.array(data_x)
        train_r_list = train_data.tolist()  # list

        dd = temp_spo2[temp_spo2['healthindex'] == 15]

        train_t_list = data_to_list_spo2(temp_spo2, 'timestamp')
        train_k_list = data_to_list_spo2(temp_spo2, 'wear_type')
        cost_matrix = temp_spo2[temp_spo2['cost_all'] > 0]

        cost_matrix1 = cost_matrix[cost_matrix['cost_all'] > 0]
        cost_all = cost_matrix1['cost_all'].mean()
        cost_all = float('%.1f' % cost_all)
        h = '平均耗时:' + str(cost_all) + 's'

    else:
        train_x_list = []
        train_y_list = []
        train_z_list = []
        train_e_list = []
        train_r_list = []
        train_k_list = []
        dd = []
        h = '平均耗时:' + str(0) + 's'

    if len(dd) >= 10:
        h1 = Error_pro(date_pro)
    else:
        h1 = ''

    start, end = Choose_time(checklist)
    plotstr = str(
        date_pro
    ) + '/' + username + '-' + title + ': ' + 'The useful data rate is ' + str(
        rate_all) + '% 晚间(' + str(end) + ':00--' + str(
            start) + ':00)有效率:' + str(rate_night1) + '% ; 白天 :' + str(
                rate_day1) + '%)'
    line = Scatter("血氧/心率值", plotstr, title_top="0%")
    line.add("血氧",
             train_x_list,
             train_y_list,
             xaxis_min=0,
             xaxis_max=24,
             legend_top="1%")
    line.add("心率",
             train_x_list,
             train_z_list,
             xaxis_min=0,
             xaxis_max=24,
             legend_top="1%")
    line.add("信号不佳",
             train_r_list,
             train_e_list,
             xaxis_min=0,
             xaxis_max=24,
             legend_top="1%")

    line.xaxis_min = 0
    line.xaxis_max = 24

    if len(temp_spo2) < 144:
        train_t_list, train_w_list = fill_data(temp_spo2, 'cost')
        train_t_list, train_j_list = fill_data(temp_spo2, 'cost_all')
        train_f_list, train_h_list = fill_data(temp_spo2, 'cost_cnt')
    else:
        train_w_list = data_to_list_spo2(temp_spo2, 'cost')
        train_h_list = data_to_list_spo2(temp_spo2, 'cost_cnt')
        train_j_list = data_to_list_spo2(temp_spo2, 'cost_all')

    line1 = Scatter("佩戴状态", h1, title_top="25%")
    line1.add("佩戴状态",
              train_x_list,
              train_k_list,
              xaxis_min=0,
              xaxis_max=24,
              legend_top="26%")

    bar = Bar("每次计算耗时", title_top="45%")
    bar.add("时长/s",
            train_t_list,
            train_w_list,
            yaxis_max=100,
            yaxis_min=0,
            is_datazoom_show=True,
            datazoom_xaxis_index=[2, 2],
            legend_top="45%")

    bar1 = Bar("计算总耗时", h, title_top="62%")
    bar1.add("总时长/s",
             train_t_list,
             train_j_list,
             yaxis_min=0,
             legend_top="65%")

    bar2 = Bar("计算次数", title_top="83%")
    bar2.add("总次数", train_t_list, train_h_list, yaxis_min=0, legend_top="85%")

    grid = Grid()
    grid.add(line, grid_bottom="78%")
    grid.add(line1, grid_top="31%", grid_bottom="58%")
    grid.add(bar, grid_top="50%", grid_bottom="40%")
    grid.add(bar1, grid_top="68%", grid_bottom="20%")
    grid.add(bar2, grid_top="88%", grid_bottom="2%")

    grid.renderer = 'svg'
    return grid
Esempio n. 4
0
def create_simple_bar():
    global temp3
    global str_path
    global name
    global flag
    global com
    global date_pro
    global username
    global title

    global max_channel1
    global max_channel2
    global max_channel3

    global h
    global leng

    Data_Acquire()
    temp3 = Change_Str_Data(da)

    if flag == 0:
        com = temp3
        flag = 1
    """三个通道的电容值进行归一化处理"""

    if len(temp3) > 0:
        max_channel1 = temp3['channel1'].max()
        max_channel2 = temp3['channel2'].max()
        max_channel3 = temp3['channel3'].max()
        """
        temp3['channel1'] = temp3['channel1']/max_channel1*1000
        temp3['channel2'] = temp3['channel2'] / max_channel2 * 1000
        temp3['channel3'] = temp3['channel3'] / max_channel3 * 1000
        """

        temp3['channel1'] = temp3['channel1'].map(Normalize(1))
        temp3['channel2'] = temp3['channel2'].map(Normalize(2))
        temp3['channel3'] = temp3['channel3'].map(Normalize(3))
    """数据未达到指定组数时进行数据填充"""
    if len(temp3) < 280:
        train_x_list = data_fill('timestamp')  # list
        train_y_list = data_fill('wear_data')
        train_z_list = data_fill('Wear_type')
        train_k_list = data_fill('channel1')
        train_l_list = data_fill('channel2')
        train_a_list = data_fill('channel3')
        train_o_list = data_fill('Charge')
        train_b_list = data_fill('Activity')
        train_c_list = data_fill('activity')
    else:
        """将dataFrame格式转为list"""
        train_x_list = data_to_list('timestamp')  # list
        train_y_list = data_to_list('wear_data')
        train_z_list = data_to_list('Wear_type')
        train_k_list = data_to_list('channel1')
        train_l_list = data_to_list('channel2')
        train_a_list = data_to_list('channel3')
        train_b_list = data_to_list('Activity')
        train_c_list = data_to_list('activity')
        train_o_list = data_to_list('Charge')

    plotstr2 = str(leng) + str(
        date_pro) + '/' + username + '-' + title + ': ' + "检测结论----该段时间内数据正常"
    line2 = Line("Mems波动值", plotstr2)
    strm = "Mems波动值"
    strn = "活动量"
    line2.add(strm,
              train_x_list,
              train_b_list,
              yaxis_min="dataMin",
              legend_top="1%")
    line2.add(strn,
              train_x_list,
              train_c_list,
              yaxis_min="dataMin",
              legend_top="1%")

    line3 = Line("三通道归一化后变化", title_top="50%")
    strc1 = "Chnanel1"
    strc2 = "Chnanel2"
    strc3 = "Chnanel3"
    line3.add(strc1,
              train_x_list,
              train_k_list,
              yaxis_min=700,
              legend_top="51%")
    line3.add(strc2,
              train_x_list,
              train_l_list,
              yaxis_min=700,
              legend_top="51%")
    line3.add(strc3,
              train_x_list,
              train_a_list,
              yaxis_min=700,
              legend_top="51%")

    line1 = Scatter("佩戴/充电状态", title_top="75%")
    strm = "佩戴状态"
    line1.add(strm,
              train_x_list,
              train_z_list,
              xaxis_max=24,
              yaxis_min=0,
              yaxis_max=1.2,
              legend_top="76%")
    line1.add('充电状态',
              train_x_list,
              train_o_list,
              xaxis_max=24,
              yaxis_min=0,
              yaxis_max=1.2,
              legend_top="76%",
              symbol_size=5,
              xaxis_name='Time/H')

    line = Line("电容波动情况", title_top="25%")
    strm = "电容值波动情况"
    line.add(strm,
             train_x_list,
             train_y_list,
             yaxis_min=0,
             legend_top="26%",
             label_color="#40ff27")

    page = Grid()
    page.add(line3, grid_top="55%", grid_bottom="30%")
    page.add(line1, grid_top="80%", grid_bottom="5%")
    page.add(line, grid_top="30%", grid_bottom="55%")
    page.add(line2, grid_top="5%", grid_bottom="80%")
    page.renderer = 'svg'
    return page