From a902909bae9bc767c5678d4077e2bd776122864f Mon Sep 17 00:00:00 2001
From: Lizzzka007 <gashchuk2011@mail.ru>
Date: Sun, 4 Aug 2024 14:15:35 +0300
Subject: [PATCH] add linestyle

---
 plotter/Args.py    |  3 ++-
 plotter/Plotter.py | 15 ++++++++++++---
 plotter/main.py    |  6 +++---
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/plotter/Args.py b/plotter/Args.py
index 7364793..d75c1f6 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, linewidth = None, legend = None, colors = None, dpi=None):
+    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, line_type = None):
         if out == "plotter_lib_pngs/":
             print("Output directory name can't be equal to " + out)
             sys.exit(-1)
@@ -24,6 +24,7 @@ class Args:
         self.legend = legend
         self.colors = colors
         self.dpi = dpi
+        self.line_type = line_type
 
         self.CorrVals()
 
diff --git a/plotter/Plotter.py b/plotter/Plotter.py
index 302a8b2..a4077fe 100755
--- a/plotter/Plotter.py
+++ b/plotter/Plotter.py
@@ -99,6 +99,7 @@ class Plotter:
         self.linewidth = args.linewidth
         self.legend = args.legend
         self.colors = args.colors
+        self.line_type = args.line_type
         self.dpi = args.dpi
 
         if args.levels != None:
@@ -208,6 +209,7 @@ class Plotter:
         # else:
         #     fig_names = self.oname
         #     fig_end = ""
+        figures = []
 
         for i in range(self.fig_count):
             y_name = self.var[i]
@@ -215,10 +217,14 @@ class Plotter:
 
             color_i = 0
             for read_data in self.file_data:
+                if self.line_type is not None:
+                    lt = self.line_type[color_i]
+                else:
+                    lt = '-'
                 if self.ifTranspose:
-                    plt.plot(read_data.data[y_name], read_data.data[x_name], linewidth=self.linewidth, color = self.colors[color_i])
+                    plt.plot(read_data.data[y_name], read_data.data[x_name], linewidth=self.linewidth, color = self.colors[color_i], linestyle = lt)
                 else:
-                    plt.plot(read_data.data[x_name], read_data.data[y_name], linewidth=self.linewidth, color = self.colors[color_i])
+                    plt.plot(read_data.data[x_name], read_data.data[y_name], linewidth=self.linewidth, color = self.colors[color_i], linestyle = lt)
                 color_i += 1
 
             if self.legend is not None:
@@ -240,6 +246,9 @@ class Plotter:
                     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)
+            
+            figures.append(fig)
+        return figures
 
     def __get_min_max_ax(self):
         min_max_var_vals = {var : [] for var in self.var}
@@ -773,7 +782,7 @@ class Plotter:
     
     def multiple_plot(self):
         self.__get_min_max_ax()
-        self.__multiple_plot()
+        return self.__multiple_plot()
 
     def slice(self):
         self.__get_min_max_bar()
diff --git a/plotter/main.py b/plotter/main.py
index cad62c3..ba7e265 100755
--- a/plotter/main.py
+++ b/plotter/main.py
@@ -26,11 +26,11 @@ 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, linewidth = None, legend = None, colors = None, dpi=None):
+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, line_type = None):
     Plot = Plotter()
-    args = Args(filename, Plot.multiple_plot, var=var, mval=mval, oname=oname, out=out, ifTranspose=ifTranspose, linewidth=linewidth, legend=legend, colors=colors, dpi=dpi)
+    args = Args(filename, Plot.multiple_plot, var=var, mval=mval, oname=oname, out=out, ifTranspose=ifTranspose, linewidth=linewidth, legend=legend, colors=colors, dpi=dpi, line_type=line_type)
     Plot.set(args, if_manual_plot=manual_plot, if_save_result=save_result)
-    Plot.multiple_plot()
+    return Plot.multiple_plot()
 
 def ani_plot(filename, out = './', oname = 'fig.gif', var=[None], mval=[None], min_y = None, max_y = None, ifTranspose=False):
     pp = str(PurePath(filename).parent) + '/'
-- 
GitLab