-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[charts][zoom] Allow to zoom on data #12503
Comments
This would be a pretty sweet feature |
Zoom BehaviourZoom & Pan GesturesAllows users to zoom and pan using mouse/touch events. Seems to be the most straight forward for allowing users to interact with your data. Will need customisation to allow which axis can be zoomed. Examples: Takes:
Zoom with Click & DragIt allows the user to "select" an area they want to zoom by "click & dragging" in the chart container. If the user wants to "zoom out" we need a different behaviour or button to handle that. It doesn't feel as intuitive as Examples: Takes:
|
Visualisation / OverviewSliderIs a helper component that allows the visualisation of the current zoom state. Usually shown as a Examples: Takes:
Area OverviewWorks better on non linear data, like scatter charts, but would require a different implementation. Examples:
|
Axis BindingThe scichart library allows zooming to be bound to two different axis. Takes:
|
@joserodolfofreitas: How did we do? Your experience with our support team matters to us. If you have a moment, please share your thoughts in this short Support Satisfaction survey. |
The zoom feature is very cool. However, I'm confused about the UX in https://deploy-preview-13859--material-ui-x.netlify.app/x/react-charts/zoom-and-pan/. I was expecting it to behave close to Figma, FigJam, Miro, Excalidraw, tldraw, Gimp, Canva:
|
Thanks for the feedback 👍 There is already a user issue to improve the zoom behaviours and patterns #13798 The idea for this feature was to start with a very minimal set of behaviours and get feedback on improvements we should include. For I'm a bit confused regarding Regarding Let me know if I missed anything or if there are any further feedback, these discussions are always welcome 💪 |
@JCQuintas It's great to see this.
👍 to be lazy, at this stage, we only need the rough right direction.
It makes sense, similar to mui/material-ui#17228.
Agree, this is how it behaves today, It matches for me with what I expect.
I have fixed the description of c), it wasn't clear.
It indeed seems to be close to how other libraries behave, https://charts.ag-grid.com/javascript/zoom/ is a bit closer to what I was expecting as a end-user. Now, taking a step back, I think we benchmark to:
Here, I appreciate that a lot of libraries are doing 3. now, it feels like from 1. that they are approaching this backward, that we have an opportunity with 4 to do it differently. I suspect that those libraries are implementing the best UX when you have a mouse wheel, but not when you have a trackpad. So it feels like they got stuck 10 years in the past. |
True, it is important to know what is expected so we can try and innovate with the unexpected. 😄 But overall I hear you, we need to allow users to customise these settings. Not sure if it is related to how you experienced it and your comment about the trackpad, but we previously had the inverse behaviour for scroll on a |
Oh interesting, I got so used to those UX behaviors, that my brain goes on auto-pilot when going to Figma and Google Maps, even though they respond to different gestures. I will try to catch myself using those. I suspect I default to Figma UX when I use Google Maps: I pan up, it see it zoom, I undo it, then I start to click-drag. Leaflet/Leaflet#7046.
I would imagine that trackpads apply to Windows too. I had something like this in mind https://stackoverflow.com/questions/10744645/detect-touchpad-vs-mouse-in-javascript. |
It is only inverted on macOS, due to how they handle scrolling. |
I don't know if it has an impact, I personally have the macOS vertical scroll direction inverted compared to what the OS default is. |
Could maybe have logic we can copy for the features on mobile https://github.com/retyui/react-quick-pinch-zoom. |
A new UX feedback. On a trackpad, mouse down + drag + mouse up, the same sequence of movement as to select text, quickly warms up the part of the finger in contact wit the trackpad because of the friction force ♨️. It's ok for small text selection areas, but unpleasant when moving a lot on Google Maps. It could be why Figma is not doing this. In any cases, I wish Google Maps changed their UX. |
This issue has been closed. If you have a similar problem but not exactly the same, please open a new issue. |
We can currently zoom with axis properties
min
/max
. But this kind of feature still requires:DX
Zoom behavior
Allows to choos if the axis interact together (see #12083) this is well defined in the section "How dataZoom components operates axes and data" https://echarts.apache.org/en/option.html#dataZoom
Display
Inside zoom
Allow to modify the zoom state by mousse interaction inside the chart
https://echarts.apache.org/en/option.html#dataZoom-inside
https://api.highcharts.com/highcharts/chart.zooming.mouseWheel
Slider zoom
Allow to modify the zoom state with sliders
https://echarts.apache.org/en/option.html#dataZoom-slider
https://api.highcharts.com/highstock/navigator
Search keywords:
Related
The text was updated successfully, but these errors were encountered: