From d0b7c72f0e83b710b66fbdcaa26f96f536e22ada Mon Sep 17 00:00:00 2001
From: Oscar Gustafsson <oscar.gustafsson@gmail.com>
Date: Wed, 29 Mar 2023 17:14:32 +0200
Subject: [PATCH] Add button to recompute the plot limits

---
 b_asic/gui_utils/plot_window.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/b_asic/gui_utils/plot_window.py b/b_asic/gui_utils/plot_window.py
index cdf56592..aa885bd5 100644
--- a/b_asic/gui_utils/plot_window.py
+++ b/b_asic/gui_utils/plot_window.py
@@ -147,10 +147,15 @@ class PlotWindow(QDialog):
         # self.ontop_checkbox.setCheckState(Qt.CheckState.Unchecked)
         # listlayout.addWidget(self.ontop_checkbox)
 
+        relim_button = QPushButton("&Recompute limits")
+        relim_button.clicked.connect(self._relim)
+        listlayout.addWidget(relim_button)
+
         # Add "Close" buttons
         button_close = QPushButton("&Close", self)
         button_close.clicked.connect(self.close)
         listlayout.addWidget(button_close)
+        self._relim()
 
         # Done. Tell the functions below to redraw the canvas when needed.
         # self.plotcanvas.draw()
@@ -197,6 +202,13 @@ class PlotWindow(QDialog):
         if self._auto_redraw:
             self._update_legend()
 
+    def _relim(self, event=None):
+        self._plot_axes.relim(True)
+        self._plot_axes.autoscale(True)
+        self._plot_axes.autoscale(axis='x', tight=True)
+        self._plot_axes.autoscale(axis='y')
+        self._plot_canvas.draw()
+
 
 def start_simulation_dialog(
     sim_results: Dict[str, List[complex]], sfg_name: Optional[str] = None
-- 
GitLab