From 67af95cb40f63b835c321cdecd0d8391ec705268 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Thu, 11 May 2023 16:34:29 +0200 Subject: [PATCH] BC: Edit: Add plot display mode 'time' and 'date'. --- src/View/BoundaryCondition/Edit/Plot.py | 31 +++++++++++++++-------- src/View/BoundaryCondition/Edit/Window.py | 1 + 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/View/BoundaryCondition/Edit/Plot.py b/src/View/BoundaryCondition/Edit/Plot.py index efb039e7..66878b7c 100644 --- a/src/View/BoundaryCondition/Edit/Plot.py +++ b/src/View/BoundaryCondition/Edit/Plot.py @@ -14,13 +14,16 @@ from View.BoundaryCondition.Edit.translate import * _translate = QCoreApplication.translate class Plot(APlot): - def __init__(self, canvas=None, data=None, toolbar=None): + def __init__(self, canvas=None, data=None, + mode = "time", toolbar=None): super(Plot, self).__init__( canvas=canvas, data=data, toolbar=toolbar ) + self._mode = mode + def custom_ticks(self): t0 = datetime.fromtimestamp(0) nb = len(self.data.data) @@ -36,16 +39,24 @@ class Plot(APlot): ) ) xx = list(map(lambda v: v[0], fx)) - xt = list( - map( - lambda v: str( - datetime.fromtimestamp(v[0]) - t0 - ).split(",")[0]\ - .replace("days", _translate("BoundaryCondition", "days"))\ - .replace("day", _translate("BoundaryCondition", "day")), - fx + if self._mode == "time": + xt = list( + map( + lambda v: str( + datetime.fromtimestamp(v[0]) - t0 + ).split(",")[0]\ + .replace("days", _translate("BoundaryCondition", "days"))\ + .replace("day", _translate("BoundaryCondition", "day")), + fx + ) + ) + else: + xt = list( + map( + lambda v: str(datetime.fromtimestamp(v[0]).date()), + fx + ) ) - ) self.canvas.axes.set_xticks(ticks=xx, labels=xt, rotation=45) diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py index 24ec9fca..8cd8fbad 100644 --- a/src/View/BoundaryCondition/Edit/Window.py +++ b/src/View/BoundaryCondition/Edit/Window.py @@ -96,6 +96,7 @@ class EditBoundaryConditionWindow(ASubMainWindow, ListedSubWindow): self.plot = Plot( canvas = self.canvas, data = self._data, + mode = self._study.time_system, ) self.plot.draw() -- GitLab