You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Support hovering all overlapping points #8113
This is more like a proposal aimed at integrating and refining a long-standing feature request regarding hover behavior at overlapping points.
When multiple points overlap at the same position, Plotly currently selects a single winning point for hover. This means the hover information of the other overlapping points is inaccessible.
It would be useful to support hovering all overlapping points, either by displaying multiple hover labels or by grouping them into a single tooltip.
For cases with many overlapping points, a compact grouped tooltip that can be pinned and expanded could also be useful. For example, TanStack Charts demonstrates a pattern where the tooltip stays compact on hover and expands to show richer content when pinned. Similar hover pinning behavior has also been requested in Plotly.js (#7578, #7663):
The exact UI does not necessarily need to follow this pattern. A similar interaction may already be possible by pre-grouping overlapping data (as long as the other overlapped records can be retrieved from the current hover winner), but native support could make it easier to implement.
Thanks for the write up! Could you provide an example where you think this type of feature would be useful? How does your request differ from the previously filed issues?
The main difference is that I am not necessarily proposing multiple native hover labels.
What would be most useful to me is exposing all records that overlap at the hovered position, so applications can decide how to present them.
In my use case, customdata may contain metadata describing how each measurement was produced, such as processing/manufacturing conditions, provenance, and measured properties.
At the moment, hover picking returns only one of these points — the current hover winner. It would be useful to preserve that existing winner for backward compatibility, while also exposing the other points that overlap it.
With access to those records, an application could decide how to present them — for example in a grouped custom tooltip, an expandable/pinned tooltip, or potentially a native plotly hover UI if such support were added later.
One concrete use case is experimental materials data. Multiple measurements can have the same nominal composition but different measured property values because they were produced or measured under different conditions. Being able to access all records at that composition would let users compare those measurements instead of silently seeing only the hover winner.
This also comes up in my recent focus on contourternary. In experimental materials datasets, several measurements can share the same composition while having different property values due to different processing or measurement conditions.
This is of course a separate issue from how those values should be handled during interpolation. However, when the original experimental points are displayed on top of the interpolated contour, being able to inspect all measurements at the same composition would be particularly useful.
P.S. The current workaround is with some data prep, for example by pre-grouping overlapping records in customdata or an external index.
Does a hoverdata event not contain all the data points already? I'm wondering if we could support custom implementations of hoverdata by just providing all the raw data.
Or is this issue strictly about visually showing all hover points by default?
Does a hoverdata event not contain all the data points already? I'm wondering if we could support custom implementations of hoverdata by just providing all the raw data.
Or is this issue strictly about visually showing all hover points by default?
I would ideally like both: exposing all overlapping points in hover data, and a native way to display them. Similar behavior can already be implemented with some data preparation, for example by grouping overlapping records in customdata, but exposing the raw overlapping points would make custom hover implementations easier.
I also understand that the current hover label design was not really built around displaying overlapping records. If I were implementing this today, I would probably disable the native hover label with hoverinfo: "none", listen to the hover event, and render a custom tooltip myself.
Activity
camdecoster commentedon Oct 13, 2026
Thanks for the write up! Could you provide an example where you think this type of feature would be useful? How does your request differ from the previously filed issues?
Lexachoc commentedon Oct 14, 2026
The main difference is that I am not necessarily proposing multiple native hover labels.
What would be most useful to me is exposing all records that overlap at the hovered position, so applications can decide how to present them.
For example:
In my use case,
customdatamay contain metadata describing how each measurement was produced, such as processing/manufacturing conditions, provenance, and measured properties.At the moment, hover picking returns only one of these points — the current hover winner. It would be useful to preserve that existing winner for backward compatibility, while also exposing the other points that overlap it.
With access to those records, an application could decide how to present them — for example in a grouped custom tooltip, an expandable/pinned tooltip, or potentially a native plotly hover UI if such support were added later.
One concrete use case is experimental materials data. Multiple measurements can have the same nominal composition but different measured property values because they were produced or measured under different conditions. Being able to access all records at that composition would let users compare those measurements instead of silently seeing only the hover winner.
This also comes up in my recent focus on contourternary. In experimental materials datasets, several measurements can share the same composition while having different property values due to different processing or measurement conditions.
This is of course a separate issue from how those values should be handled during interpolation. However, when the original experimental points are displayed on top of the interpolated contour, being able to inspect all measurements at the same composition would be particularly useful.
P.S. The current workaround is with some data prep, for example by pre-grouping overlapping records in customdata or an external index.
KoolADE85 commentedon Oct 14, 2026
Does a hoverdata event not contain all the data points already? I'm wondering if we could support custom implementations of hoverdata by just providing all the raw data.
Or is this issue strictly about visually showing all hover points by default?
Lexachoc commentedon Oct 14, 2026
I would ideally like both: exposing all overlapping points in hover data, and a native way to display them. Similar behavior can already be implemented with some data preparation, for example by grouping overlapping records in customdata, but exposing the raw overlapping points would make custom hover implementations easier.
Codepen: https://codepen.io/Lexachoc/pen/KwWomLQ
I also understand that the current hover label design was not really built around displaying overlapping records. If I were implementing this today, I would probably disable the native hover label with
hoverinfo: "none", listen to the hover event, and render a custom tooltip myself.This example (https://codepen.io/Alex-Hsu-the-bashful/full/EayrEyQ) also gave me some inspiration for that approach. (example from: #7707)
Codepen: https://codepen.io/Lexachoc/pen/yyMKXBE