Selection of Parallel Coordinates is not synced
Closed this issue · 4 comments
- Release number or git hash: Version: 10.0.1-SNAPSHOT
- Web browser version and OS: Google Chrome Version 98.0.4758.102 (Offizieller Build) (64-Bit) on Win 11
- Environment (local or deployed): https://ordino.dev.app.datavisyn.io/
Steps to reproduce
- Open a tissue data ranking
- Open the Vis panel
- Create a Parallel Coordinates Plot
Observed behavior
- The selection of the parallel coordinates is not synced to the ranking
Expected behavior
- The selection in the parallel coordinates should not be blue, but orange and be synced to the ranking and vice versa. Maybe with a small debounce after the user drops the handle or something. 🤔
After looking more into the PCP plots that plotly has available, this seems rather complex. First, not directly related to this ticket but PCP in general, is that there is no real way to set the opacity of a PCP plot. This seems insane to me, and maybe there is some hidden way that isn't in the documentation, but I cannot figure it out.
plotly/plotly.js#3964 (comment)
And a PCP plot with as many points as our data has is more or less useless without opacity.
Related to this ticket, selecting within a PCP plot also does not trigger the select callback for some reason.
plotly/react-plotly.js#66
https://community.plotly.com/t/parallel-coordinates-plot-axis-line-event/9489
The on restyle does get triggered with the most recent constraint that was added to the plot included, so you could keep track of the restraints locally and do the selection that way.
But these problems combined with the general limitations and difficulties of plotly makes me strongly suggest creating this component using D3 instead. Maybe I could try to do this for an inno day?
@dvzacharycutler Yes, the parallel coordinates plot in Plotly is weird, mostly because it is based on WebGL and therefore things a trickier to handle (but performance, yeah 🎉 ).
Regarding the selection: I did something similar here, where I basically take the constraints on restyle and generate "filters" from these ranges: https://github.com/puehringer/ChEmbVis/blob/main/client/src/components/ParallelCoordinatesPlot.tsx#L259-L291
Two-way sync is very tricky though, such that I would also prefer a different implementation.
The bigger question however is: how high do we prioritize this now? I think PCP is rather low-prio for now, or what do you say @dg-datavisyn @dvzacharycutler?
I would also give it a lower priority. Tbh, I was surprised that Alex agreed with having PCP in the first version :-) I'm a big fan of PCP. I even once watched a presentation by its inventor Alfred Inselberg at a conference in Barcelona. But in reality, it's very hard to make proper usage of it and most people are just confused.
PCP was removed from general vis