Support for multiple axes.
The .GIF
below demonstrates how multiple axes on a subplots can be used to enhance the number of visible traces, without using more (vertical) screen space 🔥!
Make sure to take a look at our examples
- 🔥 multiple y-axes support by @jonasvdd in predict-idlab#244
We switched our aggregation backend to tsdownsample, which alleviates the need to compile our C code on non-supported devices, and has parallelization capabilities.
tsdownsample
leverages the argminmax crate, which has SIMD-optimized instruction to find vertical extrema really fast!
With parallelization enabled, you should clearly see a bump in perfomance when visualizing (multiple) large traces! 🐎
We restyled our documentation and added versioning! 🎉
https://predict-idlab.github.io/plotly-resampler/latest/
Go check it out! ☝️
- Support for log-scale axes (and thus log-bin-based aggregators) - check this pull-request
The above image shows how the
log
aggregator (row2) will use log-scale bins. This can be seen in the 1-1000 range when comparing both subplots.
Note: the shown data has a fixed delta-x of 1. Hence, here are no exact equally spaced bins for the left part of the LogLTTB.
The above image shows how the
fill_value
option can be used to fill gaps with a specific value.
This can be of greate use, when you use thefill='tozeroy'
option in plotly and gaps occur in your data, as this will, combined withline_shape='vh'
, fill the area between the trace and the x-axis and gaps will be a flat zero-line.
- support for pandas2.0 intricacies
- fix: handle bool dtype for x in LTTB_core_py by @jvdd in predict-idlab#183
- fix: add colors to streamlit example 🎨 by @jvdd in predict-idlab#187
- docs: describe solution in FAQ for slow datetime arrays by @jvdd in predict-idlab#184
- Rework aggregator interface by @jvdd in predict-idlab#186
- 🚀 integrate with tsdownsample by @jvdd in predict-idlab#191
- refactor: use composition for gap handling by @jvdd in predict-idlab#199
- ✨ np.array interface implementation by @jonasvdd in predict-idlab#154
- 🧹 fix typo in docstring + remove LTTB from MinMaxLTTB + remove interleave_gaps by @jonasvdd in predict-idlab#201
- chore: use ruff instead of isort by @jvdd in predict-idlab#200
- 🌈 adding marker props by @jonasvdd in predict-idlab#148
- Datetime bugfix by @jonasvdd in predict-idlab#209
- Fixes #210 by @jonasvdd in predict-idlab#211
- Log support by @jonasvdd in predict-idlab#207
- Datetime range by @jonasvdd in predict-idlab#213
- ✨ add fill_value option to gap handlers by @jonasvdd in predict-idlab#218
- ✨ fix
limit_to_view=True
but no gaps inserted bug by @jonasvdd in predict-idlab#220 - 🐛 convert trace props to array + check for nan removal by @jvdd in predict-idlab#225
- Figurewidget datetime bug by @jonasvdd in predict-idlab#232
- ♻️ deprecate JupyterDash in favor for updated Dash version by @NielsPraet in predict-idlab#233
- 👀 comment out reset layout by @jvdd in predict-idlab#228
- Docs/versioned docs (#236) by @jonasvdd in predict-idlab#237
the lttbc
dependency is removed; and we added our own (faster) lttb C implementation. Additionally we provide a Python fallback when this lttb-C building fails. In the near future, we will look into CIBuildWheels to build the wheels for the major OS & Python matrix versions.
A well deserved s/o to dgoeris/lttbc, who heavily inspired our implementation!
Plotly-resampler now also has the option to store the output figure as an Image in notebook output. As long the notebook is connected, the interactive plotly-resampler figure is shown; but once the figure / notebook isn't connected anymore, a static image will be rendered in the notebook output.
- 🐛 return self when calling add_traces by @jvdd in predict-idlab#75
- 🔥 add streamlit integration example by @jvdd in predict-idlab#80
- ✨ adding
convert_traces_kwargs
by @jonasvdd in predict-idlab#81 - Fix numeric
hf_y
input as dtype object by @jonasvdd in predict-idlab#90 - 🔥 add support for figure dict input + propagate _grid_str by @jvdd in predict-idlab#92
- 🙏 fix tests for all OS by @jvdd in predict-idlab#95
- Add python3dot10 by @jvdd in predict-idlab#96
- 🌅 FigureResampler display improvements by @jvdd in predict-idlab#97
- 📦 serialization support + 🎚️ update OS & python version in test-matrix by @jvdd in predict-idlab#87
- Lttbv2 🍒 ⛏️ branch by @jonasvdd in predict-idlab#103
- 🤖 hack together output retention in notebooks by @jvdd in predict-idlab#105
- 📦 improve docs by @jvdd in predict-idlab#104
& some other minor bug fixes 🙈
Full Changelog: https://github.com/predict-idlab/plotly-resampler/compare/v0.7.0...v0.8.0
You can register plotly_resampler; this adds dynamic resampling functionality under the hood to plotly.py! 🥳 As a result, you can stop wrapping plotly figures with a plotly-resampler decorator (as this all happens automatically)
You only need to call the
register_plotly_resampler
method and all plotly figures will be wrapped (under the hood) according to that method's configuration.
-> More info in the README and docs!
Aditionally, all resampler Figures are now composable; implying that they can be decorated by themselves and all other types of plotly-(resampler) figures. This eases the switching from a FigureResampler to FigureWidgetResampler and vice-versa.
- 🦌 Adding reset-axes functionality by @jonasvdd in predict-idlab#48
- 🐛 Small bugfixes by @jonasvdd in predict-idlab#52
- 🔍 investigating gap-detection methodology by @jonasvdd in predict-idlab#53
- 🔍 fix float index problem of #63 by @jonasvdd in predict-idlab#64
- 🔧 hotfix for rounding error by @jonasvdd in predict-idlab#66
- 🗳️ Compose figs by @jonasvdd in predict-idlab#72
- ✨ register plotly-resampler by @jvdd in predict-idlab#70
- 🤖 update dependencies + new release by @jvdd in predict-idlab#74
Full Changelog: https://github.com/predict-idlab/plotly-resampler/compare/v0.6.0...v0.7.0