[FEATURE]: Add `plotly_heatmapclick` event (similar to `plotly_treemapclick` / `plotly_sunburstclick`)
Maintainers usually reply within 1 day
@nojaf is already working on this.
Since Jan 14, 2026.
Assessment
This issue has not been assessed yet.
Description
Description
When using dragmode: "select", heatmaps do not fire plotly_click events for single clicks. This makes it impossible to handle both cell selection (drag) and single cell clicks in the same chart.
Treemap and Sunburst charts have dedicated click events (plotly_treemapclick, plotly_sunburstclick) that fire regardless of dragmode, but heatmaps have no equivalent.
Current Behavior
// With dragmode: "select"
graphDiv.on('plotly_click', (data) => {
// Never fires for heatmaps
});
graphDiv.on('plotly_selected', (data) => {
// Fires with undefined data on single clicks
});
Requested Behavior
Add a plotly_heatmapclick event (similar to how plotly_treemapclick works) that fires when clicking on a heatmap cell, regardless of dragmode setting.
graphDiv.on('plotly_heatmapclick', (data) => {
// data.points[0] contains { x, y, z, pointIndex, curveNumber, ... }
});
Why should this feature be added?
We're building reactive heatmap charts in marimo where users can:
- Drag to select a range of cells → works via
plotly_selected - Click a single cell to select it → does not work with
dragmode: "select"
Currently, users must drag even for single-cell selections, which is unintuitive.
Notes
If this feature is something the team would accept, I'm happy to submit a PR implementing it. Any pointers on where to start in the codebase would be appreciated (e.g., how plotly_treemapclick is implemented).
- Dominant language
- JavaScript
- Stars
- 18.3k
- Forks
- 2k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 21
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from plotly/plotly.js
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
chore P3 plotly-internal size: 3 task
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
chore P1 plotly-internal size: 1 task
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
chore P3 plotly-internal size: 1 task
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
plotly/plotly.js#7648 · 3 comments ·
Maintainers usually reply within 1 day
All issues in plotly/plotly.js
Similar issues
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
amponce/archive-movie-browser#354 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
saayam-for-all/webapp#1870 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Imageomics/OpenCite#66 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
chr15m/twiiit.com#20 ·
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
antropos17/Aegis#629 ·
Maintainers usually reply within 4 days