基于rssi室内定位报告rssi分布情况标识位置
Posted rsapaper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于rssi室内定位报告rssi分布情况标识位置相关的知识,希望对你有一定的参考价值。
import matplotlib matplotlib.use(\'Agg\') import numpy as np from numpy import array from matplotlib import pyplot from scipy import integrate import math import time from sys import path path.append(\'D:\\pymine\\clean\\Gauss_rssi_model\\import_function\') from draw import * import matplotlib.mlab as mlab zhfont1 = matplotlib.font_manager.FontProperties(fname=\'C:\\Windows\\Fonts\\STKAITI.TTF\') import sqlite3 from openpyxl import Workbook print(\'ing\') def gen_rssi_model(rssi_list): x_list = sorted(list(set(rssi_list))) frequency_first_count, frequency_first_value, frequency_first_index, frequency_first_value_frequency, frequency_second_count, frequency_second_value, frequency_second_index, frequency_second_value_frequency = 0, 0, 0, 0, 0, 0, 0, 0 rssi_list_len = len(rssi_list) for i in x_list: i_value, i_count, i_index = i, rssi_list.count(i), x_list.index(i) if i_count > frequency_first_count: frequency_first_value, frequency_first_count, frequency_first_index, frequency_first_value_frequency = i_value, i_count, i_index, i_count / rssi_list_len if i_count < frequency_first_count and i_count > frequency_second_count: frequency_second_value, frequency_second_count, frequency_second_index, frequency_second_value_frequency = i_value, i_count, i_index, i_count / rssi_list_len res_dic, gauss_rssi_model_type = {}, 1 tmp_max, tmp_min = max(frequency_first_index, frequency_second_index), min(frequency_first_index, frequency_second_index) frequency_first_second_middle_value, frequency_first_second_middle_count, frequency_first_second_middle_index = \\ x_list[tmp_min + 1], rssi_list.count((x_list[tmp_min + 1])), tmp_min + 1 len_ = len(x_list) for i in range(0, len_, 1): if i <= tmp_min or i >= tmp_max: continue i_value = x_list[i] i_count = rssi_list.count(i_value) i_index = i if i_count < frequency_first_second_middle_count: frequency_first_second_middle_value, frequency_first_second_middle_count, frequency_first_second_middle_index = i_value, i_count, i_index if frequency_first_second_middle_value > (frequency_first_value + frequency_second_value) * 0.5: gauss_rssi_model_type = 2 res_dic[\'gauss_rssi_model_type\'], res_dic[\'frequency_first_value\'], res_dic[\'frequency_first_count\'], res_dic[ \'frequency_first_index\'], res_dic[\'frequency_second_value\'], res_dic[\'frequency_second_count\'], res_dic[ \'frequency_second_index\'], res_dic[\'frequency_first_second_middle_value\'], res_dic[ \'frequency_first_second_middle_count\'], res_dic[ \'frequency_first_second_middle_index\'] = gauss_rssi_model_type, frequency_first_value, frequency_first_count, frequency_first_index, frequency_second_value, frequency_second_count, frequency_second_index, frequency_first_second_middle_value, frequency_first_second_middle_count, frequency_first_second_middle_index return res_dic def pdf_Normal_distribution_integrate(average_, standard_deviation, x1, x2): f = lambda x: (np.exp(-(x - average_) ** 2 / (2 * standard_deviation ** 2))) / ( np.sqrt(2 * np.pi)) / standard_deviation # return integrate.quad(f, x1, x2) # TODO MODIFY try to be more precise # return integrate.quad(f, -np.inf, x1)[0] - integrate.quad(f, -np.inf, x2)[0] return integrate.quad(f, -np.inf, x2)[0] - integrate.quad(f, -np.inf, x1)[0] # TODO DEL # mlab.normpdf(len_, np_average, np_std) def pdf_Normal_distribution_integrate_2_linear_combination(average0, standard_deviation0, average1, standard_deviation1, x1, x2, weight0=0.5, weight1=0.5): p0, p1 = pdf_Normal_distribution_integrate(average0, standard_deviation0, x1, x2), pdf_Normal_distribution_integrate(average1, standard_deviation1, x1, x2) return weight0 * p0 + weight1 * p1 def get_list_quartern_1_3(l): quartern_index_1 = math.ceil(len(l) / 4) quartern_value_1 = l[quartern_index_1] quartern_index_3 = quartern_index_1 * 3 quartern_value_3 = l[quartern_index_3] dic_ = {} dic_[\'quartern_index_1\'] = quartern_index_1 dic_[\'quartern_value_1\'] = quartern_value_1 dic_[\'quartern_index_3\'] = quartern_index_3 dic_[\'quartern_value_3\'] = quartern_value_3 return dic_ def draw_frequency_hist(l_, title_, xlabel=\'rssi\', dir_=\'./savefig/\'): rssi_list = l_ np_std = np.std(rssi_list) np_average = np.average(rssi_list) data_ = array(l_) pyplot.hist(data_, 300) xlabel = \'%s--std=%s,average=%s,sample_number=%s\' % (xlabel, np_std, np_average, len(rssi_list)) pyplot.xlabel(xlabel) pyplot.ylabel(\'Frequency\') localtime_ = time.strftime("%y%m%d%H%M%S", time.localtime()) title_ = \'%s%s\' % (title_, localtime_) pyplot.title(title_, fontproperties=zhfont1) dir_ = \'%s%s\' % (dir_, title_) pyplot.savefig(dir_) pyplot.close() def draw_probability_density(rssi_list, title_, xlabel=\'rssi\', dir_=\'./savefig/\'): np_std = np.std(rssi_list) np_average = np.average(rssi_list) x_list = sorted(list(set(rssi_list))) len_ = len(rssi_list) loop_ = len(x_list) x, y = [], [] for i in range(0, loop_, 1): val = x_list[i] probability_density = rssi_list.count(val) / len_ x.append(val) y.append(probability_density) pyplot.plot(x, y) xlabel = \'%s--std=%s,average=%s,sample_number=%s\' % (xlabel, np_std, np_average, len(rssi_list)) pyplot.xlabel(xlabel) pyplot.ylabel(\'ProbabilityDensity\') localtime_ = time.strftime("%y%m%d%H%M%S", time.localtime()) title_ = \'%s%s\' % (title_, localtime_) pyplot.title(title_, fontproperties=zhfont1) dir_ = \'%s%s\' % (dir_, title_) pyplot.savefig(dir_) pyplot.close() def from_db_to_res(db, sql, odd_even=0): conn = sqlite3.connect(db) cursor = conn.execute(sql) res_dic, counter_ = {}, 0 for row in cursor: counter_ += 1 if counter_ % 2 == odd_even: continue db_id, gather_point, mac, rssi, timestamp = row gather_point = gather_point.replace(\'\\n\', \'\') if gather_point not in res_dic: res_dic[gather_point] = {} res_dic[gather_point][\'rssi_list\'] = [] res_dic[gather_point][\'rssi_list\'].append(rssi) for gather_point in res_dic: rssi_list = sorted(res_dic[gather_point][\'rssi_list\']) np_std = np.std(rssi_list) np_average = np.average(rssi_list) res_dic[gather_point][\'rssi_list_np_std\'] = np_std res_dic[gather_point][\'rssi_list_np_average\'] = np_average rssi_model = gen_rssi_model(rssi_list) res_dic[gather_point][\'rssi_model\'] = rssi_model list_quartern_1_3_dic = get_list_quartern_1_3(rssi_list) res_dic[gather_point][\'quartern_index_1\'], res_dic[gather_point][\'quartern_value_1\'], res_dic[gather_point][ \'quartern_index_3\'], res_dic[gather_point][\'quartern_value_3\'] = \\ list_quartern_1_3_dic[\'quartern_index_1\'], list_quartern_1_3_dic[\'quartern_value_1\'], list_quartern_1_3_dic[ \'quartern_index_3\'], list_quartern_1_3_dic[\'quartern_value_3\'] return res_dic db, sql = \'wifi_Tom_0814.db\', \'SELECT * FROM wifi\' Tom_home_dic_even = from_db_to_res(db, sql) Tom_home_dic_odd = from_db_to_res(db, sql, 1) db, sql = \'wifi_beta_office_0812am.db\', \'SELECT * FROM wifi WHERE belongpoint IN ("sw_office_Bata_table") \' Beta_table_dic_even = from_db_to_res(db, sql) Beta_table_dic_odd = from_db_to_res(db, sql, 1) k = \'sw_office_Bata_table\' rssi_list = Beta_table_dic_odd[k][\'rssi_list\'] title_ = \'%s%s\' % (\'o-\', k) draw_frequency_hist_probability_density(rssi_list, title_, xlabel=\'rssi\', dir_=\'./savefig/\') k = \'sw_office_Bata_table\' rssi_list = Beta_table_dic_even[k][\'rssi_list\'] title_ = \'%s%s\' % (\'e-\', k) draw_frequency_hist_probability_density(rssi_list, title_, xlabel=\'rssi\', dir_=\'./savefig/\') k = \'下沙88栋\' rssi_list = Tom_home_dic_odd[k][\'rssi_list\'] title_ = \'%s%s\' % (\'o-\', k) draw_frequency_hist_probability_density(rssi_list, title_, xlabel=\'rssi\', dir_=\'./savefig/\') k = \'下沙88栋\' rssi_list = Tom_home_dic_even[k][\'rssi_list\'] title_ = \'%s%s\' % (\'e-\', k) draw_frequency_hist_probability_density(rssi_list, title_, xlabel=\'rssi\', dir_=\'./savefig/\') report_dic = {} def compute_relative_integrate(dic_, dic_x, type_, direction_=\'Tom_Beta\'): global report_dic if direction_ not in report_dic: report_dic[direction_] = {} report_dic[direction_][type_] = {} report_dic[direction_][type_][\'simple_dic\'] = {} if direction_ == \'Tom_Beta\': dic_, dic_x = dic_[\'下沙88栋\'], dic_x[\'sw_office_Bata_table\'] elif direction_ == \'Tom_Tom\': dic_, dic_x = dic_[\'下沙88栋\'], dic_x[\'下沙88栋\'] elif direction_ == \'Beta_Tom\': dic_, dic_x = dic_[\'sw_office_Bata_table\'], dic_x[\'下沙88栋\'] elif direction_ == \'Beta_Beta\': dic_, dic_x = dic_[\'sw_office_Bata_table\'], dic_x[\'sw_office_Bata_table\'] average_, standard_deviation, x1, x2 = dic_[\'rssi_list_np_average\'], dic_[\'rssi_list_np_std\'], dic_x[ \'quartern_value_1\'], dic_x[\'quartern_value_3\'] res = pdf_Normal_distribution_integrate(average_, standard_deviation, x1, x2) simple_dic = {} simple_dic[\'integrand\'], simple_dic[\'to\'], simple_dic[\'res\'] = dic_, dic_x, res report_dic[direction_][type_][\'simple_dic\'] = simple_dic return res # TODO MODIFY dic_, dic_x = Tom_home_dic_even, Beta_table_dic_even Tom_e_Beta_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_e\') dic_, dic_x = Tom_home_dic_even, Beta_table_dic_odd Tom_e_Beta_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_o\') dic_, dic_x = Tom_home_dic_odd, Beta_table_dic_even Tom_o_Beta_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_e\') dic_, dic_x = Tom_home_dic_odd, Beta_table_dic_odd Tom_o_Beta_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_o\') dic_, dic_x = Tom_home_dic_odd, Tom_home_dic_odd Tom_o_Tom_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_o\', \'Tom_Tom\') dic_, dic_x = Tom_home_dic_odd, Tom_home_dic_even Tom_o_Tom_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_e\', \'Tom_Tom\') dic_, dic_x = Tom_home_dic_even, Tom_home_dic_even Tom_e_Tom_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_e\', \'Tom_Tom\') dic_, dic_x = Tom_home_dic_even, Tom_home_dic_odd Tom_e_Tom_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_o\', \'Tom_Tom\') dic_, dic_x = Beta_table_dic_even, Tom_home_dic_even Beta_e_Tom_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_e\', \'Beta_Tom\') dic_, dic_x = Beta_table_dic_even, Tom_home_dic_odd Beta_e_Tom_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_o\', \'Beta_Tom\') dic_, dic_x = Beta_table_dic_odd, Tom_home_dic_even Beta_o_Tom_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_e\', \'Beta_Tom\') dic_, dic_x = Beta_table_dic_odd, Tom_home_dic_odd Beta_o_Tom_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_o\', \'Beta_Tom\') dic_, dic_x = Beta_table_dic_odd, Beta_table_dic_odd Beta_o_Beta_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_o\', \'Beta_Beta\') dic_, dic_x = Beta_table_dic_odd, Beta_table_dic_even Beta_o_Beta_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'o_e\', \'Beta_Beta\') dic_, dic_x = Beta_table_dic_even, Beta_table_dic_even Beta_e_Beta_e_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_e\', \'Beta_Beta\') dic_, dic_x = Beta_table_dic_even, Beta_table_dic_odd Beta_e_Beta_o_pdf_integrate = compute_relative_integrate(dic_, dic_x, \'e_o\', \'Beta_Beta\') for direction_ in report_dic: for type_ in report_dic[direction_]: ll = [] simple_dic = report_dic[direction_][type_][\'simple_dic\'] to_dic, integrand_dic = simple_dic[\'to\'], simple_dic[\'integrand\'] to_quartern_index_1, to_quartern_index_3, to_quartern_value_1, to_quartern_value_3, to_rssi_list_np_average, to_rssi_list_np_std = \\ to_dic[\'quartern_index_1\'], to_dic[\'quartern_index_3\'], to_dic[\'quartern_value_1\'], to_dic[ \'quartern_value_3\'], \\ to_dic[\'rssi_list_np_average\'], to_dic[\'rssi_list_np_std\'] integrand_quartern_index_1, integrand_quartern_index_3, integrand_quartern_value_1, integrand_quartern_value_3, integrand_rssi_list_np_average, integrand_rssi_list_np_std = \\ integrand_dic[\'quartern_index_1\'], integrand_dic[\'quartern_index_3\'], integrand_dic[\'quartern_value_1\'], \\ integrand_dic[\'quartern_value_3\'], integrand_dic[\'rssi_list_np_average\'], integrand_dic[\'rssi_list_np_std\'] to_rssi_model, integrand_rssi_model = to_dic[\'rssi_model\'], integrand_dic[\'rssi_model\'] to_gauss_rssi_model_type, to_frequency_first_value, to_frequency_first_count, to_frequency_first_index, to_frequency_second_value, to_frequency_second_count, to_frequency_second_index, to_frequency_first_second_middle_value, to_frequency_first_second_middle_count, to_frequency_first_second_middle_index = \\ to_rssi_model[\'gauss_rssi_model_type\'], to_rssi_model[\'frequency_first_value\'], \\ to_rssi_model[\'frequency_first_count\'], to_rssi_model[\'frequency_first_index\'], \\ to_rssi_model[\'frequency_second_value\'], to_rssi_model[\'frequency_second_count\'], \\ to_rssi_model[\'frequency_second_index\'], to_rssi_model[\'frequency_first_second_middle_value\'], \\ to_rssi_model[\'frequency_first_second_middle_count\'], to_rssi_model[ \'frequency_first_second_middle_index\'] integrand_gauss_rssi_model_type, integrand_frequency_first_value, integrand_frequency_first_count, integrand_frequency_first_index, integrand_frequency_second_value, integrand_frequency_second_count, integrand_frequency_second_index, integrand_frequency_first_second_middle_value, integrand_frequency_first_second_middle_count, integrand_frequency_first_second_middle_index = \\ integrand_rssi_model[\'gauss_rssi_model_type\'], integrand_rssi_model[\'frequency_first_value\'], \\ integrand_rssi_model[\'frequency_first_count\'], integrand_rssi_model[\'frequency_first_index\'], \\ integrand_rssi_model[\'frequency_second_value\'], integrand_rssi_model[\'frequency_second_count\'], \\ integrand_rssi_model[\'frequency_second_index\'], integrand_rssi_model[\'frequency_first_second_middle_value\'], \\ integrand_rssi_model[\'frequency_first_second_middle_count\'], integrand_rssi_model[ \'frequency_first_second_middle_index\'] res_single = pdf_Normal_distribution_integrate(integrand_rssi_list_np_average, integrand_rssi_list_np_std, to_quartern_value_1, to_quartern_value_3) # 双峰模型:假设两个“子分布”均为正太分布且离散程度相同均等于全量数据的方差 res_double = pdf_Normal_distribution_integrate_2_linear_combination(integrand_frequency_first_value, integrand_rssi_list_np_std, integrand_frequency_second_value, integrand_rssi_list_np_std, to_quartern_value_1, to_quartern_value_3) report_dic[direction_][type_][\'simple_dic\'][\'res_single\'], report_dic[direction_][type_][\'simple_dic\'][ \'res_double\'] = res_single, res_double dd = 8 # wb = Workbook() # worksheet = wb.active # title_ = \'direction_, type_, res_single, res_double, to_rssi_list_np_average, to_rssi_list_np_std, to_quartern_index_1, to_quartern_value_1, to_quartern_index_3, to_quartern_value_3, to_gauss_rssi_model_type, to_frequency_first_value, to_frequency_first_count, to_frequency_first_index, to_frequency_second_value, to_frequency_second_count, to_frequency_second_index, to_frequency_first_second_middle_value, to_frequency_first_second_middle_count, to_frequency_first_second_middle_index, integrand_rssi_list_np_average, integrand_rssi_list_np_std,integrand_quartern_index_1, integrand_quartern_value_1, integrand_quartern_index_3,integrand_quartern_value_3,integrand_gauss_rssi_model_type, integrand_frequency_first_value, integrand_frequency_first_count, integrand_frequency_first_index, integrand_frequency_second_value, integrand_frequency_second_count, integrand_frequency_second_index, integrand_frequency_first_second_middle_value, integrand_frequency_first_second_middle_count, integrand_frequency_first_second_middle_index\' # title_l = title_.replace(\' \', \'\').split(\',\') # worksheet.append(title_l) # for direction_ in report_dic: # for type_ in report_dic[direction_]: # ll = [] # simple_dic = report_dic[direction_][type_][\'simple_dic\'] # to_dic, integrand_dic = simple_dic[\'to\'], simple_dic[\'integrand\'] # to_quartern_index_1, to_quartern_index_3, to_quartern_value_1, to_quartern_value_3, to_rssi_list_np_average, to_rssi_list_np_std = \\ # to_dic[\'quartern_index_1\'], to_dic[\'quartern_index_3\'], to_dic[\'quartern_value_1\'], to_dic[ # \'quartern_value_3\'], \\ # to_dic[\'rssi_list_np_average\'], to_dic[\'rssi_list_np_std\'] # integrand_quartern_index_1, integrand_quartern_index_3, integrand_quartern_value_1, integrand_quartern_value_3, integrand_rssi_list_np_average, integrand_rssi_list_np_std = \\ # integrand_dic[\'quartern_index_1\'], integrand_dic[\'quartern_index_3\'], integrand_dic[\'quartern_value_1\'], \\ # integrand_dic[\'quartern_value_3\'], integrand_dic[\'rssi_list_np_average\'], integrand_dic[\'rssi_list_np_std\'] # to_rssi_model, integrand_rssi_model = to_dic[\'rssi_model\'], integrand_dic[\'rssi_model\'] # # to_gauss_rssi_model_type, to_frequency_first_value, to_frequency_first_count, to_frequency_first_index, to_frequency_second_value, to_frequency_second_count, to_frequency_second_index, to_frequency_first_second_middle_value, to_frequency_first_second_middle_count, to_frequency_first_second_middle_index = \\ # to_rssi_model[\'gauss_rssi_model_type\'], to_rssi_model[\'frequency_first_value\'], \\ # to_rssi_model[\'frequency_first_count\'], to_rssi_model[\'frequency_first_index\'], \\ # to_rssi_model[\'frequency_second_value\'], to_rssi_model[\'frequency_second_count\'], \\ # to_rssi_model[\'frequency_second_index\'], to_rssi_model[\'frequency_first_second_middle_value\'], \\ # to_rssi_model[\'frequency_first_second_middle_count\'], to_rssi_model[ # \'frequency_first_second_middle_index\'] # # integrand_gauss_rssi_model_type, integrand_frequency_first_value, integrand_frequency_first_count, integrand_frequency_first_index, integrand_frequency_second_value, integrand_frequency_second_count, integrand_frequency_second_index, integrand_frequency_first_second_middle_value, integrand_frequency_first_second_middle_count, integrand_frequency_first_second_middle_index = \\ # integrand_rssi_model[\'gauss_rssi_model_type\'], integrand_rssi_model[\'frequency_first_value\'], \\ # integrand_rssi_model[\'frequency_first_count\'], integrand_rssi_model[\'frequency_first_index\'], \\ # integrand_rssi_model[\'frequency_second_value\'], integrand_rssi_model[\'frequency_second_count\'], \\ # integrand_rssi_model[\'frequency_second_index\'], integrand_rssi_model[\'frequency_first_second_middle_value\'], \\ # integrand_rssi_model[\'frequency_first_second_middle_count\'], integrand_rssi_model[ # \'frequency_first_second_middle_index\'] # # res_single, res_double = report_dic[direction_][type_][\'simple_dic\'][\'res_single\'], \\ # report_dic[direction_][type_][\'simple_dic\'][\'res_double\'] # # ll = direction_, type_, res_single, res_double, to_rssi_list_np_average, to_rssi_list_np_std, to_quartern_index_1, to_quartern_value_1, to_quartern_index_3, to_quartern_value_3, to_gauss_rssi_model_type, to_frequency_first_value, to_frequency_first_count, to_frequency_first_index, to_frequency_second_value, to_frequency_second_count, to_frequency_second_index, to_frequency_first_second_middle_value, to_frequency_first_second_middle_count, to_frequency_first_second_middle_index, integrand_rssi_list_np_average, integrand_rssi_list_np_std, integrand_quartern_index_1, integrand_quartern_value_1, integrand_quartern_index_3, integrand_quartern_value_3, integrand_gauss_rssi_model_type, integrand_frequency_first_value, integrand_frequency_first_count, integrand_frequency_first_index, integrand_frequency_second_value, integrand_frequency_second_count, integrand_frequency_second_index, integrand_frequency_first_second_middle_value, integrand_frequency_first_second_middle_count, integrand_frequency_first_second_middle_index # worksheet.append(ll) # file_name = \'自采集数据-单双峰-概率计算结果\' # localtime_ = time.strftime("%y%m%d%H%M%S", time.localtime()) # file_name_save = \'%s%s%s\' % (file_name, localtime_, \'.xlsx\') # wb.save(file_name_save) # # print(\'ok-finished\', localtime_)
import matplotlib matplotlib.use(\'Agg\') import numpy as np from numpy import array from matplotlib import pyplot from scipy import integrate import math import time import matplotlib.mlab as mlab zhfont1 = matplotlib.font_manager.FontProperties(fname=\'C:\\Windows\\Fonts\\STKAITI.TTF\') def draw_frequency_hist_probability_density(rssi_list, title_, xlabel=\'rssi\', dir_=\'./savefig/\'): np_std = np.std(rssi_list) np_average = np.average(rssi_list) x_list = sorted(list(set(rssi_list))) len_ = len(rssi_list) loop_ = len(x_list) x, y1, y2 = [], [], [] for i in range(0, loop_, 1): val = x_list[i] frequency, probability_density = rssi_list.count(val), rssi_list.count(val) / len_ x.append(val) y1.append(frequency) y2.append(probability_density) fig, (ax1, ax2, ax3, ax4) = pyplot.subplots(4, 1) fig.set_size_inches(16, 16) ax1.set_ylabel(\'Frequency\') localtime_ = time.strftime("%y%m%d%H%M%S", time.localtime()) title_ = \'%s%s\' % (title_, localtime_) ax1.set_title(title_, fontproperties=zhfont1) ax2.set_ylabel(\'Frequency\') xlabel_3 = \'%s--std=%s,average=%s,sample_number=%s\' % (xlabel, np_std, np_average, len(rssi_list)) ax3.set_xlabel(xlabel_3) ax3.set_ylabel(\'ProbabilityDensity\') ax1.plot(x, y1, \'bo\') ax2.plot(x, y1) ax3.plot(x, y2) # Tweak spacing to prevent clipping of ylabel sigma = np.std(rssi_list) mu = np.average(rssi_list) x = array(rssi_list) # num_bins = 100 # n, bins, patches = ax4.hist(x, num_bins, normed=1) num_bins = len(x_list) n, bins, patches = ax4.hist(x, num_bins, normed=1) # n, bins, patches = ax4.hist(x, normed=1) # add a \'best fit\' line y = mlab.normpdf(bins, mu, sigma) ax4.plot(bins, y, \'--\') xlabel_4 = \'%s--std=%s,average=%s\' % (\'normpdf\', np_std, np_average) ax4.set_xlabel(xlabel_4) ylabel_4 = \'normpdf\' ax4.set_ylabel(ylabel_4) # str_= \'%s: $\\mu=$s, $\\sigma=$s$\' % (\'te\') # ax4.set_title(str_) ax4.plot(bins, y) fig.tight_layout() # pyplot.plot() dir_ = \'%s%s\' % (dir_, title_) pyplot.show() pyplot.savefig(dir_) pyplot.close()
以上是关于基于rssi室内定位报告rssi分布情况标识位置的主要内容,如果未能解决你的问题,请参考以下文章