diff --git a/src/View/InitialConditions/PlotDKP.py b/src/View/InitialConditions/PlotDKP.py index 2c32db24938994e379732ef0f3a4bcfcb0721b04..d7a442864e507a4baca1e28f7c0b3811349a242b 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 d89874aaae7df9a27e4bfb2eafc63bbd947f0ac4..7c43c1e557815071c4908de1de08783b1034cc91 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 c0c060cc5a70ec751bcf009ce81e1edb0af99d45..df11dfdbad6472e856c98e41f925a3e46c73673a 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)