Results: Add data: Hydrogram: Move drawing to plot.

scenarios
Pierre-Antoine 2026-06-16 16:13:10 +02:00
parent 9717968e08
commit 19c72892a8
2 changed files with 35 additions and 11 deletions

View File

@ -21,7 +21,7 @@ import logging
from functools import reduce
from datetime import datetime
from tools import timer, trace
from tools import timer, trace, logger_exception
from View.Tools.PamhyrPlot import PamhyrPlot
from PyQt5.QtCore import (
@ -68,6 +68,7 @@ class PlotH(PamhyrPlot):
self._line_max = []
self._line = []
self._add_data_lines = []
@property
def results(self):
@ -117,15 +118,17 @@ class PlotH(PamhyrPlot):
self.set_ticks_time_formater()
self.draw_additional_data(0)
self.enable_legend()
self.canvas.draw_idle()
self.update_idle
self.update_idle()
self.draw_current()
self._init = True
def draw_data(self, res_id):
results = self.results[res_id]
reach = results.river.reach(self._current_reach_id)
for i, p in enumerate(self._current_profile_id):
@ -152,6 +155,28 @@ class PlotH(PamhyrPlot):
)
self._line.append(line)
def draw_additional_data(self, res_id):
results = self.results[res_id]
self._add_data_lines = []
for data in results.get("additional_data"):
data = data._data
x, y = data['x'], data['y']
legend = data['legend']
unit = data['unit']
if data['type_x'] == 'time' and data['type_y'] == 'discharge':
line, = self.canvas.axes.plot(
x, y, marker="+",
label=legend + ' ' + unit
)
self._add_data_lines.append(line)
self.enable_legend()
self.canvas.draw_idle()
def draw_current(self):
self._current, = self.canvas.axes.plot(
[self._current_timestamp, self._current_timestamp],
@ -220,6 +245,10 @@ class PlotH(PamhyrPlot):
self.update_current()
self.update_idle()
def update_additional_data(self):
self.draw_additional_data(0)
self.update_idle()
def update_all(self):
self._current_reach_id = self._parent._get_current_reach()
self._current_profile_id = self._parent._get_current_profiles_list()

View File

@ -1323,6 +1323,8 @@ class ResultsWindow(PamhyrWindow):
x, y = self.read_csv_file_data(filename)
data = self.read_csv_file_format(x, y)
if data is None:
return
results = self._results[self._current_results[0]]
data_lst = results.get("additional_data")
@ -1414,14 +1416,7 @@ class ResultsWindow(PamhyrWindow):
self.plot_rkc.update_idle()
if data['type_x'] == 'time' and data['type_y'] == 'discharge':
line = self.canvas_4.axes.plot(
x, y, marker="+",
label=legend + ' ' + unit
)
self.plot_h._line.append(line)
self.plot_h.enable_legend()
self.plot_h.canvas.draw_idle()
self.plot_h.update_idle()
self.plot_h.update_additional_data()
for p in self._additional_plot:
self._additional_plot[p].add_imported_plot(data)