forked from M-Labs/kirdy
62 lines
2.5 KiB
Diff
62 lines
2.5 KiB
Diff
From 59a14e06320fd42d56cd7d953da337c0fe4357fa Mon Sep 17 00:00:00 2001
|
|
From: linuswck <linuswck@m-labs.hk>
|
|
Date: Tue, 22 Oct 2024 17:30:36 +0800
|
|
Subject: [PATCH] Add option for setting min range span for y-axis
|
|
|
|
---
|
|
pglive/sources/live_axis_range.py | 17 ++++++++++++++++-
|
|
1 file changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/pglive/sources/live_axis_range.py b/pglive/sources/live_axis_range.py
|
|
index afbd806..9b62ba5 100644
|
|
--- a/pglive/sources/live_axis_range.py
|
|
+++ b/pglive/sources/live_axis_range.py
|
|
@@ -5,7 +5,7 @@ from typing import Optional, List, Tuple, Dict
|
|
class LiveAxisRange:
|
|
|
|
def __init__(self, roll_on_tick: int = 1, offset_left: float = 0., offset_right: float = 0., offset_top: float = 0.,
|
|
- offset_bottom: float = 0., fixed_range: Optional[List[float]] = None) -> None:
|
|
+ offset_bottom: float = 0., fixed_range: Optional[List[float]] = None, min_y_range_span: Optional[List[float]] = [None, None]) -> None:
|
|
self.roll_on_tick = roll_on_tick
|
|
self.offset_left = offset_left
|
|
self.offset_right = offset_right
|
|
@@ -21,6 +21,7 @@ class LiveAxisRange:
|
|
self.final_x_range = [0., 0.]
|
|
self.final_y_range = [0., 0.]
|
|
self.ignored_data_connectors: List[str] = []
|
|
+ self.min_y_range_span = min_y_range_span
|
|
|
|
def get_x_range(self, data_connector, tick: int) -> List[float]:
|
|
x, _ = data_connector.plot.getData()
|
|
@@ -116,6 +117,13 @@ class LiveAxisRange:
|
|
# therefore in that case we must set some range
|
|
final_range[0] -= 0.4
|
|
final_range[1] += 0.4
|
|
+
|
|
+ if self.min_y_range_span[0] is not None:
|
|
+ final_range[0] = min(self.min_y_range_span[0], final_range[0])
|
|
+
|
|
+ if self.min_y_range_span[1] is not None:
|
|
+ final_range[1] = max(self.min_y_range_span[1], final_range[1])
|
|
+
|
|
if self.final_y_range != final_range:
|
|
self.final_y_range = final_range
|
|
return self.final_y_range
|
|
@@ -139,6 +147,13 @@ class LiveAxisRange:
|
|
# therefore in that case we must set some range
|
|
final_range[0] -= 0.4
|
|
final_range[1] += 0.4
|
|
+
|
|
+ if self.min_y_range_span[0] is not None:
|
|
+ final_range[0] = min(self.min_y_range_span[0], final_range[0])
|
|
+
|
|
+ if self.min_y_range_span[1] is not None:
|
|
+ final_range[1] = max(self.min_y_range_span[1], final_range[1])
|
|
+
|
|
if self.final_y_range != final_range:
|
|
self.final_y_range = final_range
|
|
return self.final_y_range
|
|
--
|
|
2.44.1
|
|
|