标签:frequency 技术分享 sqrt label sqlite3 class res def max




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()
标签:frequency 技术分享 sqrt label sqlite3 class res def max
原文地址:http://www.cnblogs.com/yuanjiangw/p/7442268.html