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
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
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
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