rerun-io / rerun

Visualize streams of multimodal data. Free, fast, easy to use, and simple to integrate. Built in Rust.
https://rerun.io/
Apache License 2.0
7.08k stars 354 forks source link

Support arbitrary X axis in the plot view using a `ScalarAbscissa` #8286

Open abey79 opened 19 hours ago

abey79 commented 19 hours ago

This discord thread got me thinking and I'd like to suggest this alternative take on:

In this discussion, the user wanted to store an entire 2D plot in each frame of their simulation result, and resorted to logging a matplotlib raster:

Image

Note: this proposal address the (possibly time-varying) "instantaneous" plot use case, aka the use case where the entire plot (X and Y axis) is stored at a single time point (modulo latest at). It does not address the case where one time varying scalar must be plotted against another time varying scalar.

Core proposal

The core proposal is to introduce a ScalarAbscissa component (someone please finds a better name) that is essentially a Scalar component to be used as X axis (with tagged components we could actually reuse the same Scalar component).

Then, the existing Timeseries view would be altered as follows:

Scalar x ScalarAbscissa join

(*) this is a bit of a limitation in the case of many series against the same abscissa. Possible workaround:

Bonus features

Related

gavrelina commented 18 hours ago