Skip to content

Commit 8bfdf69

Browse files
committed
Add reset zoom functionlity and also remove extra space from gui plot.
1 parent 27a8584 commit 8bfdf69

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

applications/heartbeat_ecg.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,34 @@ def __init__(self):
5959

6060
# Set y-axis limits based on sampling rate
6161
if self.sampling_rate == 250:
62-
self.plot_widget.setYRange(0, 2**10) # for R3
62+
self.plot_widget.setYRange(0, 2**10,padding=0) # for R3 & ensuring no extra spaces at end
6363
elif self.sampling_rate == 500:
64-
self.plot_widget.setYRange(0, 2**14) # for R4
64+
self.plot_widget.setYRange(0, 2**14,padding=0) # for R4 & ensuring no extra spaces at end
6565

6666
# Set fixed x-axis range
67-
self.plot_widget.setXRange(0, 10) # 10 seconds
67+
self.plot_widget.setXRange(0, 10,padding=0) # ensure no extra spaces
6868

6969
self.ecg_curve = self.plot_widget.plot(self.time_data, self.ecg_data, pen=pg.mkPen('k', width=1))
7070
self.r_peak_curve = self.plot_widget.plot([], [], pen=None, symbol='o', symbolBrush='r', symbolSize=10) # R-peaks in red
7171

7272
self.moving_average_window_size = 5 # Initialize moving average buffer
7373
self.heart_rate_history = [] # Buffer to store heart rates for moving average
7474

75+
# Connect double-click event
76+
self.plot_widget.scene().sigMouseClicked.connect(self.on_double_click)
77+
78+
def on_double_click(self, event):
79+
if event.double():
80+
self.reset_zoom()
81+
82+
def reset_zoom(self):
83+
# Reset to default y-axis limits based on the sampling rate
84+
if self.sampling_rate == 250:
85+
self.plot_widget.setYRange(0, 2**10, padding=0)
86+
elif self.sampling_rate == 500:
87+
self.plot_widget.setYRange(0, 2**14, padding=0)
88+
self.plot_widget.setXRange(0, 10, padding=0)
89+
7590
def update_plot(self):
7691
samples, _ = self.inlet.pull_chunk(timeout=0.0, max_samples=30)
7792
if samples:

0 commit comments

Comments
 (0)