Уточнить обработку плотных трендов и восстановление сигналов

This commit is contained in:
2026-10-12 00:48:15 +03:00
parent 20454ff7fa
commit bbb4bc2b9d
14 changed files with 91 additions and 14 deletions

View File

@@ -11,6 +11,9 @@ from protocan.plot import Bounds, Viewport
def small_amplitude(values, threshold=30):
extent = getattr(values, "finite_extent", None)
if extent is not None:
return max(abs(extent[0]), abs(extent[1])) <= threshold
magnitude = max((abs(v) for v in values if math.isfinite(v)), default=None)
return magnitude is not None and magnitude <= threshold
@@ -52,7 +55,8 @@ class DualAxisPlot:
for series in self._series:
if series.visible and not series.discrete:
groups[series.key in self.right_axis_keys].extend(
v for v in series.values if math.isfinite(v))
getattr(series.values, "finite_extent", None) or
(v for v in series.values if math.isfinite(v)))
ranges = []
for values in groups:
low, high = (min(values), max(values)) if values else (0, 1)