mirror of
https://github.com/davrot/pytutorial.git
synced 2025-04-18 13:16:41 +02:00
Update README.md
Signed-off-by: David Rotermund <54365609+davrot@users.noreply.github.com>
This commit is contained in:
parent
447368cbd0
commit
b579d7ef39
1 changed files with 85 additions and 0 deletions
|
@ -187,4 +187,89 @@ Another one is this:
|
||||||
|
|
||||||
Please check yourself which suits your setup best.
|
Please check yourself which suits your setup best.
|
||||||
|
|
||||||
|
## [matplotlib.widgets.Slider](https://matplotlib.org/stable/api/widgets_api.html#matplotlib.widgets.Slider)
|
||||||
|
|
||||||
|
```python
|
||||||
|
class matplotlib.widgets.Slider(ax, label, valmin, valmax, *, valinit=0.5, valfmt=None, closedmin=True, closedmax=True, slidermin=None, slidermax=None, dragging=True, valstep=None, orientation='horizontal', initcolor='r', track_color='lightgrey', handle_style=None, **kwargs)
|
||||||
|
```
|
||||||
|
|
||||||
|
> A slider representing a floating point range.
|
||||||
|
>
|
||||||
|
> Create a slider from valmin to valmax in Axes ax. For the slider to remain responsive you must maintain a reference to it. Call on_changed() to connect to the slider event.
|
||||||
|
>
|
||||||
|
> **ax** : Axes
|
||||||
|
>
|
||||||
|
> The Axes to put the slider in.
|
||||||
|
>
|
||||||
|
> **label** : str
|
||||||
|
>
|
||||||
|
> Slider label.
|
||||||
|
>
|
||||||
|
> **valmin** : float
|
||||||
|
>
|
||||||
|
> The minimum value of the slider.
|
||||||
|
>
|
||||||
|
> **valmax** : float
|
||||||
|
>
|
||||||
|
> The maximum value of the slider.
|
||||||
|
>
|
||||||
|
> **valinit** : float, default: 0.5
|
||||||
|
> The slider initial position.
|
||||||
|
>
|
||||||
|
> **valstep** : float or array-like, default: None
|
||||||
|
>
|
||||||
|
> If a float, the slider will snap to multiples of valstep. If an array the slider will snap to the values in the array.
|
||||||
|
>
|
||||||
|
> **orientation** : {'horizontal', 'vertical'}, default: 'horizontal'
|
||||||
|
>
|
||||||
|
> The orientation of the slider.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
```python
|
||||||
|
import numpy as np
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import matplotlib
|
||||||
|
from matplotlib.widgets import Slider
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
|
|
||||||
|
def next_frame(
|
||||||
|
i: int, images: np.ndarray, image_handle: matplotlib.image.AxesImage
|
||||||
|
) -> None:
|
||||||
|
image_handle.set_data(images[i, :, :])
|
||||||
|
plt.title(f"Position: {i}")
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
axis = np.arange(-100, 101) / 100.0
|
||||||
|
|
||||||
|
x = axis[:, np.newaxis, np.newaxis].copy()
|
||||||
|
y = axis[np.newaxis, :, np.newaxis].copy()
|
||||||
|
z = axis[np.newaxis, np.newaxis, :].copy()
|
||||||
|
|
||||||
|
r = np.sqrt(x**2 + y**2 + z**2)
|
||||||
|
|
||||||
|
mask_0 = r > 0.75
|
||||||
|
r = 1.0 / (r + 1.0)
|
||||||
|
r[mask_0] = 0
|
||||||
|
|
||||||
|
number_of_frames: int = r.shape[0]
|
||||||
|
repeat_movie: bool = False
|
||||||
|
interval_between_frames_in_ms: int = 100
|
||||||
|
|
||||||
|
fig: matplotlib.figure.Figure = plt.figure()
|
||||||
|
# Generate the initial image
|
||||||
|
# and set the value range for the whole images array
|
||||||
|
image_handle = plt.imshow(r[0, :, :], vmin=r.min(), vmax=r.max(), cmap="hot")
|
||||||
|
plt.colorbar()
|
||||||
|
|
||||||
|
axfreq = fig.add_axes([0.4, 0.9, 0.3, 0.03])
|
||||||
|
slice_slider = Slider(
|
||||||
|
ax=axfreq, label="Slice", valmin=0, valmax=r.shape[0] - 1, valinit=0, valstep=1
|
||||||
|
)
|
||||||
|
|
||||||
|
slice_slider.on_changed(partial(next_frame, images=r, image_handle=image_handle))
|
||||||
|
|
||||||
|
plt.show()
|
||||||
|
```
|
||||||
|
|
Loading…
Add table
Reference in a new issue