From 00deb98fb445004c2bac34430f727e04869f9f4b Mon Sep 17 00:00:00 2001 From: Lizzzka007 <gashchuk2011@mail.ru> Date: Tue, 30 Jul 2024 16:58:46 +0300 Subject: [PATCH] Add new arguments to multiple_plot: Add linewidth, legend, colors, dpi --- plotter/Args.py | 6 ++++- plotter/Plotter.py | 61 +++++++++++++++++++++++++++++----------------- plotter/main.py | 4 +-- 3 files changed, 46 insertions(+), 25 deletions(-) diff --git a/plotter/Args.py b/plotter/Args.py index 360763d..7364793 100644 --- a/plotter/Args.py +++ b/plotter/Args.py @@ -1,7 +1,7 @@ import sys import numpy as np class Args: - def __init__(self, filename, func, var=None, mval=None, oname=None, out=None, ndim = None, min_y = None, max_y = None, title=None, levels=None, plane_type = None, slice_position = None, ifTranspose=False): + def __init__(self, filename, func, var=None, mval=None, oname=None, out=None, ndim = None, min_y = None, max_y = None, title=None, levels=None, plane_type = None, slice_position = None, ifTranspose=False, linewidth = None, legend = None, colors = None, dpi=None): if out == "plotter_lib_pngs/": print("Output directory name can't be equal to " + out) sys.exit(-1) @@ -20,6 +20,10 @@ class Args: self.plane_type = plane_type self.slice_position = slice_position self.ifTranspose = ifTranspose + self.linewidth = linewidth + self.legend = legend + self.colors = colors + self.dpi = dpi self.CorrVals() diff --git a/plotter/Plotter.py b/plotter/Plotter.py index ae249fd..302a8b2 100755 --- a/plotter/Plotter.py +++ b/plotter/Plotter.py @@ -14,23 +14,27 @@ class Plotter: def __init__(self): self.ani_period = float(1./20.) - self.filename = None - self.out = None - self.oname = None - self.var = None - self.mval = None - self.function = None - self.file_column_names = None - self.title = None - self.file_data = None - self.plt_max_val = None - self.plt_min_val = None - self.min_y = None - self.max_y = None - self.min_max_var_vals = None - self.plane_type = None - self.slice_position = None - self.ifTranspose = False + # self.filename = None + # self.out = None + # self.oname = None + # self.var = None + # self.mval = None + # self.function = None + # self.file_column_names = None + # self.title = None + # self.file_data = None + # self.plt_max_val = None + # self.plt_min_val = None + # self.min_y = None + # self.max_y = None + # self.min_max_var_vals = None + # self.plane_type = None + # self.slice_position = None + # self.ifTranspose = False + # self.linewidth = 4 + # self.legend = None + # self.colors = None + # self.dpi = None def __check_arg_dim_equiv(self, args): if args.var != None and args.mval != None: @@ -92,6 +96,10 @@ class Plotter: self.plane_type = args.plane_type self.slice_position = args.slice_position self.ifTranspose = args.ifTranspose + self.linewidth = args.linewidth + self.legend = args.legend + self.colors = args.colors + self.dpi = args.dpi if args.levels != None: self.levels = args.levels @@ -205,15 +213,20 @@ class Plotter: y_name = self.var[i] fig = plt.figure() + color_i = 0 for read_data in self.file_data: if self.ifTranspose: - plt.plot(read_data.data[y_name], read_data.data[x_name], linewidth=4) + plt.plot(read_data.data[y_name], read_data.data[x_name], linewidth=self.linewidth, color = self.colors[color_i]) else: - plt.plot(read_data.data[x_name], read_data.data[y_name], linewidth=4) + plt.plot(read_data.data[x_name], read_data.data[y_name], linewidth=self.linewidth, color = self.colors[color_i]) + color_i += 1 - plt.legend(self.filename) + if self.legend is not None: + plt.legend(self.legend) + else: + plt.legend(self.filename) - if self.ifTranspose: + if self.ifTranspose is False: plt.xlabel(x_name, fontsize=10, fontweight='bold') plt.ylabel(y_name, fontsize=10, fontweight='bold') else: @@ -222,7 +235,11 @@ class Plotter: if self.if_manual_plot: plt.show() else: plt.close(fig) - if self.if_save_result: fig.savefig(self.out + self.fig_names[i] + self.fig_end) + if self.if_save_result: + if self.dpi is not None: + fig.savefig(self.out + self.fig_names[i] + self.fig_end, dpi = self.dpi) + else: + fig.savefig(self.out + self.fig_names[i] + self.fig_end) def __get_min_max_ax(self): min_max_var_vals = {var : [] for var in self.var} diff --git a/plotter/main.py b/plotter/main.py index 089ba36..cad62c3 100755 --- a/plotter/main.py +++ b/plotter/main.py @@ -26,9 +26,9 @@ def joint_plot(filename, out = './', oname = [None], var=[None], mval=[None], mi Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.joint_plot() -def multiple_plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], min_y = None, max_y = None, ifTranspose=False): +def multiple_plot(filename, out = './', oname = 'fig.png', var=[None], mval=[None], min_y = None, max_y = None, ifTranspose=False, linewidth = None, legend = None, colors = None, dpi=None): Plot = Plotter() - args = Args(filename, Plot.multiple_plot, var=var, mval=mval, oname=oname, out=out, ifTranspose=ifTranspose) + args = Args(filename, Plot.multiple_plot, var=var, mval=mval, oname=oname, out=out, ifTranspose=ifTranspose, linewidth=linewidth, legend=legend, colors=colors, dpi=dpi) Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result) Plot.multiple_plot() -- GitLab