From c42abbc8803367d9f67599ea76747163601d641a Mon Sep 17 00:00:00 2001
From: Jean-Matthieu Etancelin <jean-matthieu.etancelin@univ-pau.fr>
Date: Fri, 7 Jun 2019 09:13:25 +0200
Subject: [PATCH] Fix missing matplotlib import in parameter plotter

---
 hysop/operator/parameter_plotter.py | 38 ++++++++++++++---------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/hysop/operator/parameter_plotter.py b/hysop/operator/parameter_plotter.py
index e45dfe072..231a2e0da 100644
--- a/hysop/operator/parameter_plotter.py
+++ b/hysop/operator/parameter_plotter.py
@@ -17,18 +17,18 @@ class PlottingOperator(ComputationalGraphOperator):
 
     def __init__(self, name=None,
             dump_dir=None,
-            update_frequency=1, 
-            save_frequency=100, 
-            axes_shape=(1,), 
+            update_frequency=1,
+            save_frequency=100,
+            axes_shape=(1,),
             figsize=(30,18),
             visu_rank=0,
-            fig=None, 
+            fig=None,
             axes=None,
             **kwds):
-        
+
         import matplotlib
         import matplotlib.pyplot as plt
-        
+
         check_instance(name, str)
         check_instance(update_frequency, int, minval=0)
         check_instance(save_frequency, int, minval=0)
@@ -39,15 +39,15 @@ class PlottingOperator(ComputationalGraphOperator):
         if (fig is None) ^ (axes is None):
             msg='figure and axes should be specified at the same time.'
             raise RuntimeError(msg)
-        
+
         dump_dir = first_not_None(dump_dir, IO.default_path())
         imgpath = '{}/{}.png'.format(dump_dir, name)
-        
+
         if (fig is None):
             fig, axes = plt.subplots(*axes_shape, figsize=figsize)
         fig.canvas.mpl_connect('key_press_event', self.on_key_press)
         fig.canvas.mpl_connect('close_event', self.on_close)
-        
+
         axes = npw.asarray(axes).reshape(axes_shape)
 
         self.fig  = fig
@@ -79,7 +79,7 @@ class PlottingOperator(ComputationalGraphOperator):
     def _save(self, simulation, **kwds):
         if simulation.should_dump(frequency=self.save_frequency, with_last=True):
             self.save(simulation=simulation, **kwds)
-    
+
     @abstractmethod
     def update(self, **kwds):
         pass
@@ -87,7 +87,7 @@ class PlottingOperator(ComputationalGraphOperator):
     def save(self, **kwds):
         self.fig.savefig(self.imgpath, dpi=self.fig.dpi,
                 bbox_inches='tight')
-    
+
     def on_close(self, event):
         self.running  = False
 
@@ -100,14 +100,15 @@ class PlottingOperator(ComputationalGraphOperator):
 
 class ParameterPlotter(PlottingOperator):
     """
-    Base operator to plot parameters during runtime. 
+    Base operator to plot parameters during runtime.
     """
-    
-    def __init__(self, name, parameters, alloc_size=128, 
+
+    def __init__(self, name, parameters, alloc_size=128,
             fig=None, axes=None, shape=None, **kwds):
-        
+
         input_params = {}
         if (fig is not None) and (axes is not None):
+            import matplotlib
             custom_axes = True
             axes_shape=None
             check_instance(parameters, dict, keys=matplotlib.axes.Axes, values=dict)
@@ -127,7 +128,7 @@ class ParameterPlotter(PlottingOperator):
             else:
                 raise TypeError(type(parameters))
             check_instance(_parameters, dict, keys=(int,tuple,list), values=(TensorParameter,list,tuple,dict))
-            
+
             parameters = {}
             axes_shape = (1,)*2
             for (pos,params) in _parameters.iteritems():
@@ -158,7 +159,7 @@ class ParameterPlotter(PlottingOperator):
                             _params[_pname] = _p
                 parameters[pos] = _params
 
-        super(ParameterPlotter, self).__init__(name=name, input_params=input_params, 
+        super(ParameterPlotter, self).__init__(name=name, input_params=input_params,
                 axes_shape=axes_shape, axes=axes, fig=fig, **kwds)
 
         self.custom_axes = custom_axes
@@ -198,7 +199,7 @@ class ParameterPlotter(PlottingOperator):
             return self.axes[i]
         else:
             return self.axes.flatten()[i]
-    
+
     def update(self, simulation, **kwds):
         # expand memory if required
         if (self.counter+1>self.times.size):
@@ -219,4 +220,3 @@ class ParameterPlotter(PlottingOperator):
                 lines[pos][p].set_xdata(times[:self.counter])
                 lines[pos][p].set_ydata(data[pos][p][:self.counter])
         self.counter += 1
-
-- 
GitLab