From bfd166b7176a053586209195469fc031c695cbeb Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Fri, 16 Feb 2024 11:16:18 +0100 Subject: [PATCH] IC: Apply new PamhyrPlot features. --- src/View/InitialConditions/PlotDKP.py | 61 +++++++++++++-------- src/View/InitialConditions/PlotDischarge.py | 54 +++++++++--------- src/View/Tools/PamhyrPlot.py | 2 + 3 files changed, 67 insertions(+), 50 deletions(-) diff --git a/src/View/InitialConditions/PlotDKP.py b/src/View/InitialConditions/PlotDKP.py index 2c32db24..d7a44286 100644 --- a/src/View/InitialConditions/PlotDKP.py +++ b/src/View/InitialConditions/PlotDKP.py @@ -27,53 +27,66 @@ _translate = QCoreApplication.translate class PlotDKP(PamhyrPlot): + def __init__(self, canvas=None, trad=None, toolbar=None, + data=None, parent=None): + super(PlotDKP, self).__init__( + canvas=canvas, + trad=trad, + data=data, + toolbar=toolbar, + parent=parent + ) + + self.label_x = self._trad["kp"] + self.label_y = self._trad["elevation"] + + self._isometric_axis = False + + self._auto_relim_update = True + self._autoscale_update = True + @timer def draw(self, highlight=None): - self.canvas.axes.cla() - self.canvas.axes.grid(color='grey', linestyle='--', linewidth=0.5) + self.init_axes() if self.data is None: return - self.canvas.axes.set_ylabel( - self._trad["elevation"], - color='black', fontsize=11 - ) - self.canvas.axes.set_xlabel( - self._trad["kp"], - color='black', fontsize=11 - ) + self.draw_river_bottom() + self.draw_water() + + self.idle() + self._init = True + def draw_river_bottom(self): kp = self.data.reach.reach.get_kp() z_min = self.data.reach.reach.get_z_min() - self.canvas.axes.set_xlim( - left=min(kp), right=max(kp) - ) - self.line_kp_zmin = self.canvas.axes.plot( kp, z_min, - color='grey', lw=1. + color=self.color_plot_river_bottom, + lw=1. ) + def draw_water(self): if len(self.data) != 0: kp = self.data.get_kp() elevation = self.data.get_elevation() self.line_kp_elevation = self.canvas.axes.plot( kp, elevation, - color='b', marker='+', lw=1. + color=self.color_plot_river_water, + **self.plot_default_kargs ) - self.canvas.figure.tight_layout() - self.canvas.figure.canvas.draw_idle() - if self.toolbar is not None: - self.toolbar.update() + z_min = self.data.reach.reach.get_z_min() - # self._init = True + self.collection = self.canvas.axes.fill_between( + kp, z_min, elevation, + color=self.color_plot_river_water_zone, + alpha=0.7, interpolate=True + ) @timer def update(self, ind=None): - if not self._init: - self.draw() - return + self.draw() diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py index d89874aa..7c43c1e5 100644 --- a/src/View/InitialConditions/PlotDischarge.py +++ b/src/View/InitialConditions/PlotDischarge.py @@ -21,28 +21,38 @@ from View.Tools.PamhyrPlot import PamhyrPlot class PlotDischarge(PamhyrPlot): + def __init__(self, canvas=None, trad=None, toolbar=None, + data=None, parent=None): + super(PlotDischarge, self).__init__( + canvas=canvas, + trad=trad, + data=data, + toolbar=toolbar, + parent=parent + ) + + self.label_x = self._trad["kp"] + self.label_y = self._trad["discharge"] + + self._isometric_axis = False + + self._auto_relim_update = True + self._autoscale_update = True + @timer - def draw(self, highlight=None): - self.canvas.axes.cla() - self.canvas.axes.grid(color='grey', linestyle='--', linewidth=0.5) + def draw(self): + self.init_axes() if self.data is None: return - self.canvas.axes.set_ylabel( - self._trad["discharge"], - color='black', fontsize=11 - ) - self.canvas.axes.set_xlabel( - self._trad["kp"], - color='black', fontsize=11 - ) + self.draw_data() - kp = self.data.reach.reach.get_kp() + self.idle() + self._init = True - self.canvas.axes.set_xlim( - left=min(kp), right=max(kp) - ) + def draw_data(self): + kp = self.data.reach.reach.get_kp() if len(self.data) != 0: kp = self.data.get_kp() @@ -50,18 +60,10 @@ class PlotDischarge(PamhyrPlot): self.line_kp_zmin = self.canvas.axes.plot( kp, discharge, - color='r', lw=1. + color=self.color_plot, + **self.plot_default_kargs ) - self.canvas.figure.tight_layout() - self.canvas.figure.canvas.draw_idle() - if self.toolbar is not None: - self.toolbar.update() - - # self._init = True - @timer def update(self, ind=None): - if not self._init: - self.draw() - return + self.draw() diff --git a/src/View/Tools/PamhyrPlot.py b/src/View/Tools/PamhyrPlot.py index c0c060cc..df11dfdb 100644 --- a/src/View/Tools/PamhyrPlot.py +++ b/src/View/Tools/PamhyrPlot.py @@ -36,6 +36,8 @@ class PamhyrPlot(APlot): color_plot_current = "blue" color_plot_next = "purple" color_plot_river_bottom = "grey" + color_plot_river_water = "blue" + color_plot_river_water_zone = "skyblue" colors = list(mplcolors.TABLEAU_COLORS) -- GitLab