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