-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Panning and zooming #1590
Comments
It would be nice if zooming and panning were supported in geo contexts as well. |
In the meantime, something along those lines is working https://observablehq.com/d/223f34bca10702a3 |
Thanks for sharing @jcolot! |
@mbostock Will this also include the zooming option for 2D/3D maps? |
I would like zooming in all kinds of plots, and the ability to lock either the x or y axis so it cannot be zoomed. This should also work in combination with brushing / selection of a part of the plot, so a suggestion is to use e.g. the Alt-key for zooming. In case you don't know, here is how Plotly does it, although I'm not a fan of the hovering menu they have in the corner of the plot. Thanks! |
It looks like you almost have the necessary functionality already, as zooming can be hacked by changing the |
I'm excited for zoom/pan functionality to exist in Plot! An added consideration: In my use case, to save on data transfer time, I'm downsampling high-resolution timeseries channels to my plot's resolution on the backend, so when I zoom in, I'll need to fetch more data at some point. To support this kind of use case, it would be great if the |
FULL EDIT: I noticed that in this example the zoom is reset at each rendering. This works in a notebook, but not really in a standalone page. In general I think this is not the best way to use d3.zoom. However this provided inspiration - thx for sharing 👍 After more exploration and getting other cues from this notebook and this comment, I could make it work properly in this notebook, However in a standalone page, the zoom is misaligned on the x axis, but good on the y axis - and it's the same code !!! - unless typo... 👀 EDIT 2: I put this misaligned d3 zoom question on the forum, maybe a better place. EDIT 3: I got help from mcmcclur in the forum and after some more trials & reading the (very good) doc & watching youtube series "Introduction to Data Visualization in Observable Plot Course" (very useful) I have solved the zoom issue (see here) and can provide my opinion/feedback:
I cannot finish this much edited post with a sincere congrats to all the people making ObservableHQ and d3 !! It's fantastic 👏 EDIT 4: For ref: I also managed an example of zooming with dual axis - even though translateExtent() values remain mysterious. d3.zoom would probably benefit from a few more official example notebooks. EDIT 5: I have added a use of d3.brush to control zoom in notebook @oscar6echo/plot-attempts-on-zoom - bit manual as the plot must be wrapped in an svg/g element, but works fine. I did not try adding animation with d3.transition. Not very clear to me so far. |
It would be nice if pan and zoom worked with Protomaps base tiles: https://protomaps.com/ Context:
Happy to help make this happen if needed! It would be a huge unlock for myself and many others. |
I’ve added brush-to-zoom to the https://observablehq.observablehq.cloud/framework-example-mortgage-rates/ Source is here: |
We are looking to make a switch and hope this feature comes out soon! |
this gets a vote from me, as I am in process of moving this app into observable framework as a validation piece https://www.youtube.com/watch?v=I44bHsFPZjU thanks for the great framework |
It would be nice to support pan-and-zoom interaction (à la d3-zoom) in dense scatterplots with Plot. Presumably this would work by altering the scale domains and then re-rendering the plot.
The text was updated successfully, but these errors were encountered: