GeezerVison is showing github.com — Releases · fastplotlib/fastplotlib
Releases · fastplotlib/fastplotlib
v0.7.0
b01ff50
This commit was created on GitHub.com and signed with GitHub’s verified signature.
This is a big release with a ton of new features!
New
- NDWidget: The biggest new addition, a system for viewing n-dimensional multi-modal datasets with arbitrary graphical representations. For more information see docs on the data model and a guide on how to use it. While this does talk about neuroscience datasets, it is applicable to any forms of scientific data that fit the data model (n-dim, multi modal, heterogeneous sampling, etc.). Big thanks to everyone who was involved in designing, brainstorming and reviewing the NDWidget! @clewis7 @apasarkar @FlynnOConnell
- New graphics:
MeshGraphic, SurfaceGraphic, PolygonGraphic, InfLineGraphic, and ImageYUVGraphic (YUV components sent straight to the GPU, much faster for displaying video data, use with asyncvideo: https://pypi.org/project/asyncvideo/).
- Collections refactor: new
ScatterCollection, ScatterStack, ImageCollection and ImageGrid. Numpy-like fancy indexing across graphics.
- Lines and scatters:
dash_pattern and thin args, and cmap_range
- Images: native dtypes are kept (only 64-bit types are cast to float32), new args: gamma, colorspace, cpu_buffer and texture_usage.
- Data setters: setting data with a different size or shape automaticlaly allocates a new buffer!
- Graphic: scale, map_model_to_world()/map_world_to_model(), tooltip_format.
- Selectors: the
HighlightSelectors, VisibilitySelector, ImageVisibilitySelector, SelectorCollection (LinearSelectors, RectangleSelectors, …) and SelectionVector.
- Tools: a
Cursor tool and a tooltips.
- imgui: windows can go on any edge, float, or sit in the toolbar, for a figure or a single subplot (add_imgui_window). Each graphic can have its own right-click popup. ImguiColorbar replaces the HistogramLUTTool.
- Config system, see the docs.
- Other: Figure(rects=/extents=) accepts a dict keyed by subplot name; axis labels; PlotArea.x_range/y_range/map_world_to_screen(); matplotlib migration guide.
Breaking
- Dependencies: Python ≥ 3.11, numpy ≥ 2.1, pygfx == 0.17.0. imgui requires imgui-bundle<1.92.900 until the next wgpu-py release.
- isolated_buffer removed from every graphic; buffers always copy, some graphics such as
ImageGraphic, have a cpu_buffer that you can set to false for directly sending data to the GPU with no copy.
- All uniform_* kwargs removed: uniform_color(s), uniform_marker, uniform_edge_color, uniform_size and point_rotation_mode are gone, and the mode is inferred from the passed or set value. A single color is now uniform, so line.colors returns a pygfx.Color and line.colors[i] = ... raises TypeError unless per-vertex colors were passed.
- Line/scatter cmap: returns a cmap.Colormap and is applied on the GPU. Use cmap_transform/cmap_range instead of graphic.cmap.transform.
- Image cmap: returns a
cmap.Colormap instead of a str.
- Collections:
collection[i] and collection[slice] are removed; use collection.graphics[i] or the accessors, e.g. collection.data[i]. kwargs_lines and uniform_colors are gone.
- LineStack(separation=): was a float (default 10) added to each line's own max. It is now an (x, y, z) gap (default (0, 0, 0)) added to one step shared by all graphics (the max over all the data).
- Defaults: scatter sizes went from 1 to 5. Lines with thickness < 1.1 no longer switch to the thin material automatically, pass thin=True.
- Tooltips: now on by default in every subplot. Figure(show_tooltips=), figure.show_tooltips and figure.tooltip_manager are gone. Use subplot.tooltip.enabled and graphic.tooltip_format.
- imgui renames:
- add_gui()/guis → add_imgui_window()/imgui_windows
- register_popup/open_popup/Graphic.right_click_menu → set_imgui_right_click()
- ui.EdgeWindow/Window/Popup/BaseGUI/GUI_EDGES → ImguiWindow/ImguiPopup/ImguiBase/EDGES
- ColormapPicker removed
- HistogramLUTTool removed, replaced by ui.ImguiColorbar.
- ImageWidget is now a thin wrapper over NDWidget. ndim, n_scrollable_dims, n_img_dims and reset_vmin_vmax_frame() are gone, and window_funcs returns the plain {dim: (func, size)} dict.
- fpl.utils.get_nearest_graphics* → fpl.get_nearest_graphics*.
Fixed
- Newer images now layer above older ones (#944).
- LinearSelector/LinearRegionSelector no longer crash with parent=None (#945).
- Setting image/volume alpha now works; it used to write to a nonexistent material.alpha (#1074).
- LinearSelector.limits are no longer rounded to integers.
- Nested loops over a Figure or collection work; the loops used to share one iterator.
- PolygonSelector buffers now shrink as well as grow (#958).
- ImageWidget.set_data() accepts arrays whose slider dims have different lengths (#965).
- The coolwarm cmap ambiguity warning is gone (#1079).
What's Changed
New Contributors
Full Changelog: v0.6.1...v0.7.0
Contributors
hmaarrfk, almarklein, and 4 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
cos4ni2s and apasarkar reacted with thumbs up emoji
cos4ni2s, Vipitis, and apasarkar reacted with hooray emoji
cos4ni2s and apasarkar reacted with heart emoji
cos4ni2s, sbiquard, and apasarkar reacted with rocket emoji
All reactions
-
👍
2 reactions
-
🎉
3 reactions
-
❤️
2 reactions
-
🚀
3 reactions
4 people reacted
v0.6.1
c924c66
This commit was created on GitHub.com and signed with GitHub’s verified signature.
This release changes the pygfx version pin due to upstream changes in rendercanvas and wgpu that cause CI issues, does not affect users.
It also includes a fix for how plot areas are auto scaled when controllers manage multiple cameras.
What's Changed
Full Changelog: v0.6.0...v0.6.1
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
v0.6.0
6d04ade
This commit was created on GitHub.com and signed with GitHub’s verified signature.
New
ImageVolumeGraphic, #791
VectorsGraphic, #929
- Scatter markers and other new scatter features, #913
- alpha handling, transparent objects are now pickable! #873
PolygonSelector, #837
- Better handling of z-order for rendering, #906 .
What's Changed
Full Changelog: v0.5.1...v0.6.0
Contributors
almarklein, kushalkolar, and clewis7
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
Vipitis and FlynnOConnell reacted with hooray emoji
2 people reacted
v0.5.1
d444c41
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
v0.5.0
124d79e
This commit was created on GitHub.com and signed with GitHub’s verified signature.
New
- Tooltips!
figure = Figure(show_tooltips=True) will autogenerate tooltips that display the graphic's data at the current mouse pointer position. For customization see the examples gallery.
Graphic is now public and available as a top level import, useful for typing and subclassing. fastplotlib.Graphic.
- All GraphicFeatures are now public and available under the
fastplotlib.graphics.features namespace. Useful for typing and subclassing for advanced use cases.
GraphicFeatureEvent is now public and also available as a top level import, i.e. fastplotlib.GraphicFeatureEvent, since this can be frequently used for typing in event callback functions.
- Faster array subsampling that takes into account the relative dimensions of the input array, now used for
quick_min_max(). Thanks @FlynnOConnell !
- Infinite line material from
pygfx gives us a much nicer LinearSelector!
What's Changed
Full Changelog: v0.4.0...v0.5.0
Contributors
almarklein, kushalkolar, and 3 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
FelipeCybis, YuCao16, claydugo, and DEUCE1957 reacted with thumbs up emoji
4 people reacted
v0.4.0
d97307b
This commit was created on GitHub.com and signed with GitHub’s verified signature.
New
- Window layouts! You can create subplots with arbitrary rects/extents on the canvas, move and resize them! From #740.
See the Examples Gallery to learn how to create them.
rects-2025-03-08_02.43.12.mp4
- Bidirectional events are supported! No changes in the API, just add event handlers as you normally would without worrying about recursion if you end up with cycles in your event graph. 😄 #744
- #771 , not officially documented for now, the way in which you access this might change in the future but we plan to keep this because it's very useful
Breaking
Subplot.set_title no longer exists, use Subplot.title = "new_title_text". Subplot.title will return a TextGraphic that you can further format.
- The prototype video recorder (which wasn't really exposed) has been removed since it was very wonky. Once #765 is done we will have a proper way to create a video.
What's Changed
Full Changelog: v0.3.0...v0.4.0
Contributors
kushalkolar, apasarkar, and 2 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
v0.3.0
d4af1a9
This commit was created on GitHub.com and signed with GitHub’s verified signature.
New
- Axes! We finally have basic axes, thanks to @almarklein 🥳 . Currently not very performative but good enough for many use cases. If you do not need axes and require the absolute highest performance set the axes visibility to
False.
- ImGUI integration! Optional imgui integration using
imgui_bundle. Provides subplot toolbars, right click menus, and allows implementation of UI elements within the canvas. This allows you to create UIs that will work across all GUI backends, Qt, glfw, and jupyter! See the examples to learn more.
- use the
cmap library
- RectangleRegionSelector
- More examples
What's Changed
New Contributors
Full Changelog: v0.2.0...v0.3.0
Contributors
almarklein, kushalkolar, and 3 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
agriyakhetarpal reacted with thumbs up emoji
agriyakhetarpal and almarklein reacted with hooray emoji
agriyakhetarpal reacted with heart emoji
agriyakhetarpal reacted with rocket emoji
All reactions
-
👍
1 reaction
-
🎉
2 reactions
-
❤️
1 reaction
-
🚀
1 reaction
2 people reacted
v0.2.0
0edfe7f
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Major release
Breaking changes
Graphic properties (such as data, colors, thickness etc.) have been refactored. They are much simpler now.
- Please see this for a description of the new API, concise and in-depth comparison are given: #511 (comment)
- Events should be added onto graphics now, not onto graphic properties. ex: do not do:
line.colors.add_event_handler(), instead do: line.add_event_handler(<callback>, "colors"). Decorators are also supported, for more info see #511 (comment)
- selector
selection is now in data space, and doesn't return indices. For example, linear_selector.selection will return the x or y position of the selector in data space, not the index like before. See the "selectors" section here for more details or the selector docs: #511 (comment)
Figure is new and is largely the same as the former Gridplot. Plot no longer exists. See #479
What's Changed
New Contributors
Full Changelog: v0.1.0.a16...v0.2.0
Contributors
tlambert03, almarklein, and 4 other contributors
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
agriyakhetarpal reacted with thumbs up emoji
agriyakhetarpal reacted with hooray emoji
agriyakhetarpal reacted with heart emoji
agriyakhetarpal and clewis7 reacted with rocket emoji
All reactions
-
👍
1 reaction
-
🎉
1 reaction
-
❤️
1 reaction
-
🚀
2 reactions
2 people reacted
v0.1.0.a16
2873a67
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
Breaking changes
- in #382 the
controllers argument for GridPlot has been replaced by two new arguments. See the new docstring for details, briefly:
controller_ids to specify how controllers can be synced across subplots
controller_types to specify the controller types, such as "panzoom", "fly", "orbit", etc.
- after #364
PlotArea.auto_scale() only takes keyword arguments and no positional arguments.
What's Changed
Full Changelog: v0.1.0.a15...v0.1.0.a16
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
v0.1.0.a15
9a81e7d
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
What's Changed
Note: CI for this version was performed locally and reference images were checked manually. GitHub actions was bugging out heavily.
Full Changelog: v0.1.0.a14...v0.1.0.a15
Contributors
kushalkolar and clewis7
Assets
2
Loading
Uh oh!
There was an error while loading. Please reload this page.
|