Hacker News new | ask | show | jobs
by parksy 1868 days ago
I went through the tutorials/demos and this seems very intuitive. I don't do a lot of visualisation, but when I do, I've found manually coaxing data and configuring visual parameters to please a library to be tedious as it's time spent doing busy work I'd rather spend analysing the results. So for me the major drawcard is being able to drop a simple table of results in and let the library handle the necessary inferences for the type of vis I'm after. If it works for the majority of my use-cases, that's a big timesaver for me.

One type of visualisation I sometimes (honestly rarely) use but is extremely useful for finding unintuitive relationships in higher dimensions of data are parallel coordinates charts (actually it's your d3 code I've been borrowing in the past - so thanks for that!) Is this something that can be achieved with Plot at this stage? I'm not sure if it would be a facet, a transform, or something else, like a cross between marks and links (if that's doable).

Anyway, definitely bookmarked - I'll be sure to spend more time using this next time I need to visualise some data, looks like it will handle a lot of the standard vis without the typical boilerplate, thanks for releasing this.

1 comments

Thanks for the feedback. There’s a test in the repo that does parallel coordinates:

https://github.com/observablehq/plot/blob/main/test/plots/ca...

It’s not a perfect fit for Plot because Plot wants at most one instance of each scale in a plot. (I.e., Plot isn’t designed to support dual-axis charts where you have two y scales. Dual-axis charts tend not to be a good idea anyway.) So to implement parcoords we use a normalize transform to map values to [0, 1] and then render axes manually. We might revisit this topic in the future as Plot grows. I agree that parcoords are very useful for initial exploration, especially with interactive filtering.

It would also be reasonable to have a more specialized component for parcoords — not everything has to live in Plot. For example we found ourselves making a lot of dashboards of time-series data, so we built this reusable component on top of D3 instead of Plot:

https://observablehq.com/@observablehq/timechart

Thanks for the reply - even if it's not within the design scope your test code reads much cleaner than the code I've used in the past (where perhaps naively I've manually transformed and presented each dimension individually where you've done a single normalise operation). For sure every tool fits a particular paradigm and parcoords are incredibly niche, but plotting aside from the demo code you provided I can see some general purpose uses for the transformations as well and definitely a good addition to the tool-belt. Good stuff!