if UAV_mode not in res[network_type]:
		res[network_type][UAV_mode] = []

	if UAV_mode not in UAV_modes:
		UAV_modes[UAV_mode] = True
	if network_type not in network_types:
		network_types[network_type] = True
		
	res[network_type][UAV_mode].append(lifetime)
input_file.close()

# generate average lifetime figures
nodes = []
for network_type in network_types:
	group = float(network_type.split('_')[5]) # transfer_rate
	for UAV_mode in res[network_type].keys():
		node = {}
		node['label'] = UAV_mode
		node['value'] = np.mean(res[network_type][UAV_mode])
		node['error'] = np.std(res[network_type][UAV_mode])
		node['group'] = group
		print node['label'], node['value'], node['group']
		nodes.append(node)

fm.draw_bar_err_group_figure(nodes, 'Charging Efficiency Rate', 'Lifetime (day)',
	'Lifetime by Charging Efficiency Rate and Algorithms')
plt.show()

fm.draw_normalized_bar_err_group_figure(nodes, 'Charging Efficiency Rate', 'Normalized Lifetime',
	'Normalized Lifetime by Charging Efficiency Rate and Algorithms')
plt.show()
	if network_type not in res:
		res[network_type] = {}
	if UAV_mode not in res[network_type]:
		res[network_type][UAV_mode] = []

	if UAV_mode not in UAV_modes:
		UAV_modes[UAV_mode] = True
	if network_type not in network_types:
		network_types[network_type] = True
		
	res[network_type][UAV_mode].append(lifetime)
input_file.close()

# generate average lifetime figures
nodes = []
for network_type in network_types:
	group = int(network_type.split('_')[8]) # charging energy consumption rate
	for UAV_mode in res[network_type].keys():
		node = {}
		node['label'] = UAV_mode
		node['value'] = np.mean(res[network_type][UAV_mode])
		node['error'] = np.std(res[network_type][UAV_mode])
		node['group'] = group
		nodes.append(node)

fm.draw_bar_err_group_figure(nodes, 'Energy Consumption Rate of Transfer (W)', 'Lifetime (day)',
	'Lifetime by Energy Consumption Rate of Transfer and Algorithms')
plt.show()
fm.draw_normalized_bar_err_group_figure(nodes, 'Energy Consumption Rate of Transfer (W)', 'Normalized Lifetime',
	'Normalized Lifetime by Energy Consumption Rate of Transfer and Algorithms')
plt.show()
	if UAV_mode not in UAV_modes:
		UAV_modes[UAV_mode] = True
	if network_type not in network_types:
		network_types[network_type] = True
		
	res[network_type][UAV_mode].append(lifetime)
input_file.close()

# generate average lifetime figures
nodes = []
for network_type in network_types:
	group = int(network_type.split('_')[9]) # base distance
	for UAV_mode in res[network_type].keys():
		node = {}
		node['label'] = UAV_mode
		node['group'] = group
		node['value'] = np.mean(res[network_type][UAV_mode])
		node['error'] = np.std(res[network_type][UAV_mode])	
		nodes.append(node)

fm.draw_bar_err_group_figure(nodes, 'Distance of UAV Base Station (m)', 'Lifetime (day)',
	'Lifetime by Distance of UAV Base Station and Algorithms')

plt.show()

fm.draw_normalized_bar_err_group_figure(nodes, 'Distance of UAV Base Station (m)', 'Normalized Lifetime',
	'Normalized Distance of UAV Base Station and Algorithms')
plt.show()


	if UAV_mode not in UAV_modes:
		UAV_modes[UAV_mode] = True
	if network_type not in network_types:
		network_types[network_type] = True
		
	res[network_type][UAV_mode].append(lifetime)
input_file.close()

# generate average lifetime figures
nodes = []
for network_type in network_types:
	group = int(float(network_type.split('_')[10])) / (3600)# UAV power capacity (WH)
	for UAV_mode in res[network_type].keys():
		node = {}
		node['label'] = UAV_mode
		node['group'] = group
		node['value'] = np.mean(res[network_type][UAV_mode])
		node['error'] = np.std(res[network_type][UAV_mode])	
		nodes.append(node)

fm.draw_bar_err_group_figure(nodes, 'UAV Energy Capacity (WH)', 'Lifetime (day)',
	'Lifetime by UAV Energy Capacity and Algorithms')

plt.show()

fm.draw_normalized_bar_err_group_figure(nodes, 'UAV Energy Capacity (WH)', 'Normalized Lifetime',
	'Normalized Lifetime by UAV Energy Capacity and Algorithms')
plt.show()