enso/distribution
Jaroslav Tulach 2b9352d2fc
Lazy scatterplot for Vector & Table (#3655)
First of all this PR demonstrates how to implement _lazy visualization_:
- one needs to write/enhance Enso visualization libraries - this PR adds two optional parameters (`bounds` and `limit`) to `process_to_json_text` function.
- the `process_to_json_text` can be tested by standard Enso test harness which this PR also does
- then one has to modify JavaScript on the IDE side to construct `setPreprocessor` expression using the optional parameters

The idea of _scatter plot lazy visualization_ is to limit the amount of points the IDE requests. Initially the limit is set to `limit=1024`. The `Scatter_Plot.enso` then processes the data and selects/generates the `limit` subset. Right now it includes `min`, `max` in both `x`, `y` axis plus randomly chosen points up to the `limit`.

![Zooming In](https://user-images.githubusercontent.com/26887752/185336126-f4fbd914-7fd8-4f0b-8377-178095401f46.png)

The D3 visualization widget is capable of _zooming in_. When that happens the JavaScript widget composes new expression with `bounds` set to the newly visible area. By calling `setPreprocessor` the engine recomputes the visualization data, filters out any data outside of the `bounds` and selects another `limit` points from the new data. The IDE visualization then updates itself to display these more detailed data. Users can zoom-in to see the smallest detail where the number of points gets bellow `limit` or they can select _Fit all_ to see all the data without any `bounds`.

# Important Notes
Randomly selecting `limit` samples from the dataset may be misleading. Probably implementing _k-means clustering_ (where `k=limit`) would generate more representative approximation.
2022-08-23 12:12:22 +00:00
..
bin Enso Integration with Ideal Graph Visualizer (#3533) 2022-06-23 04:43:49 +00:00
engine/THIRD-PARTY Support pattern matching on constants (#3641) 2022-08-12 13:18:58 +00:00
launcher Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
lib/Standard Lazy scatterplot for Vector & Table (#3655) 2022-08-23 12:12:22 +00:00
project-manager/THIRD-PARTY Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
enso.bundle.template Better component handling in the project manager (#1399) 2021-01-15 15:26:51 +00:00
launcher-manifest.yaml Bump the development version number (#1389) 2021-01-06 08:57:02 +00:00
manifest.template.yaml Bump Minimal PM/Launcher Versions for New Engine (#1854) 2021-07-13 13:08:00 +02:00