Parameters ---------- targetfig : `~matplotlib.figure.Figure` The figure instance to adjust. toolfig : `~matplotlib.figure.Figure` The figure instance to embed the subplot tool into.
(self, targetfig, toolfig)
| 1978 | """ |
| 1979 | |
| 1980 | def __init__(self, targetfig, toolfig): |
| 1981 | """ |
| 1982 | Parameters |
| 1983 | ---------- |
| 1984 | targetfig : `~matplotlib.figure.Figure` |
| 1985 | The figure instance to adjust. |
| 1986 | toolfig : `~matplotlib.figure.Figure` |
| 1987 | The figure instance to embed the subplot tool into. |
| 1988 | """ |
| 1989 | |
| 1990 | self.figure = toolfig |
| 1991 | self.targetfig = targetfig |
| 1992 | toolfig.subplots_adjust(left=0.2, right=0.9) |
| 1993 | toolfig.suptitle("Click on slider to adjust subplot param") |
| 1994 | |
| 1995 | self._sliders = [] |
| 1996 | names = ["left", "bottom", "right", "top", "wspace", "hspace"] |
| 1997 | # The last subplot, removed below, keeps space for the "Reset" button. |
| 1998 | for name, ax in zip(names, toolfig.subplots(len(names) + 1)): |
| 1999 | ax.set_navigate(False) |
| 2000 | slider = Slider(ax, name, 0, 1, |
| 2001 | valinit=getattr(targetfig.subplotpars, name)) |
| 2002 | slider.on_changed(self._on_slider_changed) |
| 2003 | self._sliders.append(slider) |
| 2004 | toolfig.axes[-1].remove() |
| 2005 | (self.sliderleft, self.sliderbottom, self.sliderright, self.slidertop, |
| 2006 | self.sliderwspace, self.sliderhspace) = self._sliders |
| 2007 | for slider in [self.sliderleft, self.sliderbottom, |
| 2008 | self.sliderwspace, self.sliderhspace]: |
| 2009 | slider.closedmax = False |
| 2010 | for slider in [self.sliderright, self.slidertop]: |
| 2011 | slider.closedmin = False |
| 2012 | |
| 2013 | # constraints |
| 2014 | self.sliderleft.slidermax = self.sliderright |
| 2015 | self.sliderright.slidermin = self.sliderleft |
| 2016 | self.sliderbottom.slidermax = self.slidertop |
| 2017 | self.slidertop.slidermin = self.sliderbottom |
| 2018 | |
| 2019 | bax = toolfig.add_axes((0.8, 0.05, 0.15, 0.075)) |
| 2020 | self.buttonreset = Button(bax, 'Reset') |
| 2021 | self.buttonreset.on_clicked(self._on_reset) |
| 2022 | |
| 2023 | def _on_slider_changed(self, _): |
| 2024 | self.targetfig.subplots_adjust( |
nothing calls this directly
no test coverage detected