Interactive roadmap #1411
-
Hi! Thanks much to all maintainers for the excellent work on this library. Mostly a question for @Fil - what does the roadmap look like for interactive plot features (eg. tooltips, selection/brushing, zoom) ? I've been looking through the past issues and on the observable forum and found a handful of your experiments across different notebooks. If these features are a bit farther out on the road map, how would you feel if I put together a small library on npm of Plot experimental interactive features, with some added docs and type annotations (ISC or MIT licensed) ? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Thanks for asking. For the when, we want to do it as soon as humanly possible, and we also want to do it well, so, I don't know… The "hard" part is not to develop a feature (the experiments show how it's already possible to "plug" any D3 code into existing marks, in a few hours), but to make sure that we approach interactions in a "generic" way. We want the system to cover all the range of what's possible with Plot: all the marks, transforms and aggregation, initializers, scales, etc., in a way that is as unified and consistent as possible. Not just scatterplots. Basically, the question of "pointing" is a mixed abstraction, since it is both a region on the screen and a subset of the data. When you build a specific interaction for a specific app, you choose one or the other depending on your primary goal and the way the data are represented, but here we need to keep both the geometric selection (the region on the screen, which might be a point, a curve, a geometry…), and the data selection (the underlying values selected/represented in that region). We also want to design the syntax to make it as easy as possible to opt-in (even maybe by default in some cases) interactions, and write generic helpers that control the interaction and actually do something with it. The first public feature will most certainly be the tooltips branch that Mike has been working on (#1304). Once it's ready, I think the rest is going to come very fast, because the foundation will allow to (re)build everything that is already out there in D3-land and just needs to be adapted. hopefully not just by us, but by everyone who wants to contribute. In the interim, feel free of course to reuse and adapt any code that is already out there and licensed, and package it as you find it convenient. If you need some of my code and it's not licensed, don't hesitate to ask, I haven't always thought of adding the proper license on it. We really want everyone to experiment and share experiments, and build from Plot. However, we won't actively support something that would become a companion library: our aim is to make basic interactions part of the "core experience" of Plot. If you want to contribute, i'd encourage you to check out the tooltip branch and play with it. Feedback and suggestions are welcome and useful. |
Beta Was this translation helpful? Give feedback.
Thanks for asking. For the when, we want to do it as soon as humanly possible, and we also want to do it well, so, I don't know… The "hard" part is not to develop a feature (the experiments show how it's already possible to "plug" any D3 code into existing marks, in a few hours), but to make sure that we approach interactions in a "generic" way. We want the system to cover all the range of what's possible with Plot: all the marks, transforms and aggregation, initializers, scales, etc., in a way that is as unified and consistent as possible. Not just scatterplots. Basically, the question of "pointing" is a mixed abstraction, since it is both a region on the screen and a subset of the data.…