.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "_gallery/selection_tools/rectangle_selector.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr__gallery_selection_tools_rectangle_selector.py: Rectangle Selectors =================== Example showing how to use a `RectangleSelector` with line collections .. GENERATED FROM PYTHON SOURCE LINES 7-66 .. image-sg:: /_gallery/selection_tools/images/sphx_glr_rectangle_selector_001.webp :alt: rectangle selector :srcset: /_gallery/selection_tools/images/sphx_glr_rectangle_selector_001.webp :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none /home/runner/work/fastplotlib/fastplotlib/fastplotlib/graphics/_features/_base.py:18: UserWarning: casting float64 array to float32 warn(f"casting {array.dtype} array to float32") | .. code-block:: Python # test_example = false import numpy as np import fastplotlib as fpl from itertools import product # create a figure figure = fpl.Figure( size=(700, 560) ) # generate some data def make_circle(center, radius: float, n_points: int = 75) -> np.ndarray: theta = np.linspace(0, 2 * np.pi, n_points) xs = radius * np.sin(theta) ys = radius * np.cos(theta) return np.column_stack([xs, ys]) + center spatial_dims = (50, 50) circles = list() for center in product(range(0, spatial_dims[0], 9), range(0, spatial_dims[1], 9)): circles.append(make_circle(center, 3, n_points=75)) pos_xy = np.vstack(circles) # add image line_collection = figure[0, 0].add_line_collection(circles, cmap="jet", thickness=5) # add rectangle selector to image graphic rectangle_selector = line_collection.add_rectangle_selector() # add event handler to highlight selected indices @rectangle_selector.add_event_handler("selection") def color_indices(ev): line_collection.cmap = "jet" ixs = ev.get_selected_indices() # iterate through each of the selected indices, if the array size > 0 that mean it's under the selection selected_line_ixs = [i for i in range(len(ixs)) if ixs[i].size > 0] line_collection[selected_line_ixs].colors = "w" # manually move selector to make a nice gallery image :D rectangle_selector.selection = (15, 30, 15, 30) figure.show() # NOTE: `if __name__ == "__main__"` is NOT how to use fastplotlib interactively # please see our docs for using fastplotlib interactively in ipython and jupyter if __name__ == "__main__": print(__doc__) fpl.run() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.519 seconds) .. _sphx_glr_download__gallery_selection_tools_rectangle_selector.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: rectangle_selector.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: rectangle_selector.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: rectangle_selector.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_