Esempio n. 1
0
def plot_metrics(main_directory, list_directories, directory_dest_metrics, main_directory_paired = "", list_directories_paired = []):
	print "\t\t[ Plotting metrics... ]"	

	for metric in metrics:
		for j in range(0, 2):
			m = metric + "_" + parts[j]

			xlog = False
			ylog = False
			if metric in metrics_log:
				xlog = True
				ylog = True

			print "\tPlotting %s ..." % m
						
			xlabel = parts[j].title() + " " + metric
			
			########################
			# PLOT DISTRIBUTION
			########################
			list_plot_parameters = []
			list_data = []
			list_legend = []
			
			i = 0
			ci = 0
			for directory in list_directories:
				data_distribution = {}
				with open(main_directory + "/" + directory + "/metrics/" + parts[j] + "/" + m + "/" + m + "_distribution.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						data_distribution[modules.extra.num(line[0])] = modules.extra.num(line[1])
				list_data.append(data_distribution)
				if paired:
					list_plot_parameters.append(dict(marker=list_markers[i], markersize=12, linewidth=0, alpha=0.5, color=colorset_paired[ci]))
				else:
					list_plot_parameters.append(dict(marker=list_markers[i], markersize=12, linewidth=0, alpha=0.5, color=colorset[i]))
				list_legend.append(directory)
				
				if paired:
					data_distribution = {}
					with open(main_directory_paired + "/" + list_directories_paired[i] + "/metrics/" + parts[j] + "/" + m + "/" + m + "_distribution.data", 'r') as file:
						for line in file:
							line = line.replace("\n", "").split()
							data_distribution[modules.extra.num(line[0])] = modules.extra.num(line[1])
					list_data.append(data_distribution)
					list_plot_parameters.append(dict(marker=list_markers[i], markersize=12, linewidth=0, alpha=0.5, color=colorset_paired[ci + 1]))
					list_legend.append(list_directories_paired[i])
				
				i += 1
				ci += 2
			
			title = ""
			ylabel = ""
			plot_file = directory_dest_metrics + "/" + parts[j] + "/distribution_" + m

			P = Plot(plot_file, title, xlabel, ylabel, xlog, ylog, list_legend)
			P.plot_multiple(list_data, list_plot_parameters)
			########################

			########################
			# PLOT CDF
			########################
			list_plot_parameters = []
			list_data = []
			list_legend = []
			
			i = 0
			ci = 0
			for directory in list_directories:
				data_reverse_cdf = {}
				with open(main_directory + "/" + directory + "/metrics/" + parts[j] + "/" + m + "/" + m + "_reverse_cdf.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						data_reverse_cdf[modules.extra.num(line[0])] = modules.extra.num(line[1])
				list_data.append(data_reverse_cdf)
				if paired:				
					list_plot_parameters.append(dict(linestyle="-", marker=list_markers[i], markersize=14, linewidth=2.5, alpha=0.5, markeredgecolor=colorset_paired[ci], color=colorset_paired[ci]))
				else:
					list_plot_parameters.append(dict(linestyle="-", marker=list_markers[i], markersize=14, linewidth=2.5, alpha=0.5, markeredgecolor=colorset[i], color=colorset[i]))
				list_legend.append(directory)				

				if paired:
					data_reverse_cdf = {}
					with open(main_directory_paired + "/" + list_directories_paired[i] + "/metrics/" + parts[j] + "/" + m + "/" + m + "_reverse_cdf.data", 'r') as file:
						for line in file:
							line = line.replace("\n", "").split()
							data_reverse_cdf[modules.extra.num(line[0])] = modules.extra.num(line[1])
					list_data.append(data_reverse_cdf)
					list_plot_parameters.append(dict(linestyle="-", marker=list_markers[i], markersize=14, linewidth=2.5, alpha=0.5, markeredgecolor=colorset_paired[ci + 1], color=colorset_paired[ci + 1]))
					list_legend.append(list_directories_paired[i])

				i += 1
				ci += 2

			title = ""
			ylabel = ""
			plot_file = directory_dest_metrics + "/" + parts[j] + "/reverse_cdf_" + m

			P = Plot(plot_file, title, xlabel, ylabel, False, False, list_legend, formatter=True)
			P.plot_multiple(list_data, list_plot_parameters)
Esempio n. 2
0
def plot_correlations(directory_correlations, parts_directory_plot_correlations, legend):
	print "\t\t[ Plotting correlations... ]"

	for correlation in correlations:
		metrics = correlation.split("-")
		for i in range(0, 2):
			correlation = metrics[0] + "_" + parts[i] + "-" + metrics[1] + "_" + parts[i]
			d = directory_correlations + "/" + parts[i] + "/" + correlation

			if not os.path.isdir(d):
				print "[%s directory not found]" % d
			else:
				xlog = False
				ylog = False
				if metrics[0] in metrics_log:
					xlog = True			
				if metrics[1] in metrics_log:
					ylog = True

				print "\tPlotting %s ..." % d
				
				list_plot_parameters = []
				list_data = []

				########################
				# SCATTER POINTS 
				########################
				data_scatter = {}
				with open(d + "/" + correlation + "_scatter.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						data_scatter[modules.extra.num(line[0])] = modules.extra.num(line[1])
				highest = max(data_scatter.values())
				list_plot_parameters.append(dict(marker="o", markersize=3, linewidth=0, alpha=0.5, color=colorset[0]))
				list_data.append(data_scatter)

				########################
				# CURVE FITTING (AVG)
				########################
				data_avg_curve = {}
				with open(d + "/" + correlation + "_avg_curve.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						data_avg_curve[modules.extra.num(line[0])] = modules.extra.num(line[1])
				list_plot_parameters.append(dict(linestyle="--", marker="s", markersize=8, linewidth=2.5, color=colorset[1]))
				list_data.append(data_avg_curve)

				'''data_linear = {}
				with open(d + "/" + correlation + "_linear_regression.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						if line[0] in nodes or not nodes:
							data_linear[num(line[0])] = num(line[1])
				list_plot_parameters.append(dict(linestyle="-", marker="o", markersize=6, linewidth=1.5, alpha=0.75))
				list_data.append(data_linear)'''

				'''data_fitting_curve = {}
				with open(d + "/" + correlation + "_fitting_curve.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						if line[0] in nodes or not nodes:
							data_fitting_curve[num(line[0])] = num(line[1])
				list_plot_parameters.append(dict(linestyle="-", marker="o", markersize=6, linewidth=1.5, alpha=0.75))
				list_data.append(data_fitting_curve)'''

				title = ""
				xlabel = metrics[0]
				ylabel = metrics[1]
				plot_file = parts_directory_plot_correlations[i] + "/" + correlation

				try:
					P = Plot(plot_file, title, xlabel, ylabel, True, True, [legend], ylimit=[0, highest])
					P.plot_multiple(list_data, list_plot_parameters)
				except Exception, e:
					print "Error during plotting process : %s" % e
Esempio n. 3
0
def plot_correlations(main_directory, list_directories, directory_dest_correlations, main_directory_paired = "", list_directories_paired = []):
	print "\t\t[ Plotting correlations... ]"

	for correlation in correlations:
		metrics = correlation.split("-")
		for j in range(0, 2):
			correlation = metrics[0] + "_" + parts[j] + "-" + metrics[1] + "_" + parts[j]

			xlog = False
			ylog = False
			if metrics[0] in metrics_log:
				xlog = True			
			if metrics[1] in metrics_log:
				ylog = True

			print "\tPlotting %s ..." % correlation

			xlabel = parts[j].title() + " " + metrics[0]
			ylabel = parts[j].title() + " " + metrics[1]

			list_plot_parameters = []
			list_data = []
			list_data_avg_curve = []
			list_plot_parameters_avg_curve = []
			list_legend = []
			highest = 0.0

			i = 0
			ci = 0
			for directory in list_directories:
				maximum = 0.0
				data_scatter = {}
				with open(main_directory + "/" + directory + "/correlations/" + parts[j] + "/" + correlation + "/" + correlation + "_scatter.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						data_scatter[modules.extra.num(line[0])] = modules.extra.num(line[1])
				maximum = max(data_scatter.values())
				if highest < maximum:
					highest = maximum				
				if paired:
					list_plot_parameters.append(dict(marker=list_markers[i], markersize=8, linewidth=0, alpha=0.5, color=colorset_paired[ci]))
				else:
					list_plot_parameters.append(dict(marker=list_markers[i], markersize=8, linewidth=0, alpha=0.5, color=colorset[i]))
				list_data.append(data_scatter)
								
				data_avg_curve = {}
				with open(main_directory + "/" + directory + "/correlations/" + parts[j] + "/" + correlation + "/" + correlation + "_avg_curve.data", 'r') as file:
					for line in file:
						line = line.replace("\n", "").split()
						data_avg_curve[modules.extra.num(line[0])] = modules.extra.num(line[1])
				if paired:					
					list_plot_parameters_avg_curve.append(dict(linestyle="--", marker=list_markers[i], markersize=13, linewidth=2.5, color=colorset_paired[ci]))
				else:
					list_plot_parameters_avg_curve.append(dict(linestyle="--", marker=list_markers[i], markersize=13, linewidth=2.5, color=colorset[i]))
				
				if data_avg_curve:
					list_data_avg_curve.append(data_avg_curve)
				else:
						print "[Impossible to retrieve average curve data from '%s']" % directory

				list_legend.append(directory)

				if paired:
					maximum = 0.0
					data_scatter = {}
					with open(main_directory_paired + "/" + list_directories_paired[i] + "/correlations/" + parts[j] + "/" + correlation + "/" + correlation + "_scatter.data", 'r') as file:
						for line in file:
							line = line.replace("\n", "").split()
							data_scatter[modules.extra.num(line[0])] = modules.extra.num(line[1])
					maximum = max(data_scatter.values())
					if highest < maximum:
						highest = maximum
					list_plot_parameters.append(dict(marker=list_markers[i], markersize=8, linewidth=0, alpha=0.5, color=colorset_paired[ci + 1]))
					list_data.append(data_scatter)

					data_avg_curve = {}
					with open(main_directory_paired + "/" + list_directories_paired[i] + "/correlations/" + parts[j] + "/" + correlation + "/" + correlation + "_avg_curve.data", 'r') as file:
						for line in file:
							line = line.replace("\n", "").split()
							data_avg_curve[modules.extra.num(line[0])] = modules.extra(line[1])
					list_plot_parameters_avg_curve.append(dict(linestyle="--", marker=list_markers[i], markersize=13, linewidth=2.5, color=colorset_paired[ci + 1]))
					
					if data_avg_curve:
						list_data_avg_curve.append(data_avg_curve)
					else:
						print "[Impossible to retrieve average curve data from %s]" % list_directories_paired[i]

					list_legend.append(list_directories_paired[i])
					
				i += 1
				ci += 2

			title = ""
			plot_file = directory_dest_correlations + "/" + parts[j] + "/" + correlation

			list_data.extend(list_data_avg_curve)
			list_plot_parameters.extend(list_plot_parameters_avg_curve)
			
			P = Plot(plot_file, title, xlabel, ylabel, xlog, ylog, list_legend, ylimit=[0, highest])
			P.plot_multiple(list_data, list_plot_parameters)