Title: [ENH]: Built-in crosshair tool through gui-native crosshair cursor · Issue #30515 · matplotlib/matplotlib · GitHub
Open Graph Title: [ENH]: Built-in crosshair tool through gui-native crosshair cursor · Issue #30515 · matplotlib/matplotlib
X Title: [ENH]: Built-in crosshair tool through gui-native crosshair cursor · Issue #30515 · matplotlib/matplotlib
Description: Problem Our naive approaches to crosshair cursors https://matplotlib.org/devdocs/gallery/widgets/cursor.html have the disadvantage that the crosshair is drawn on the figure. This means an expensive redraw of the the figure for every curs...
Open Graph Description: Problem Our naive approaches to crosshair cursors https://matplotlib.org/devdocs/gallery/widgets/cursor.html have the disadvantage that the crosshair is drawn on the figure. This means an expensive...
X Description: Problem Our naive approaches to crosshair cursors https://matplotlib.org/devdocs/gallery/widgets/cursor.html have the disadvantage that the crosshair is drawn on the figure. This means an expensive...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/30515
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[ENH]: Built-in crosshair tool through gui-native crosshair cursor","articleBody":"### Problem\n\nOur naive approaches to crosshair cursors https://matplotlib.org/devdocs/gallery/widgets/cursor.html have the disadvantage that the crosshair is drawn on the figure. This means an expensive redraw of the the figure for every cursor position change and results in a laggy behavior.\n\n### Proposed solution\n\nWe could grow an API on Canvas to draw a crosshair with GUI native lines. That should be relatively easy. We only need the size of the Axes-under-cursor in figure coordinates to determine the length of the crosshair.\n\nThe goal would be to add a crosshair tool in addtion to Pan and Zoom.\n\nThis tool should be much easier to use than a Cursor widget and much more efficient.","author":{"url":"https://github.com/timhoffm","@type":"Person","name":"timhoffm"},"datePublished":"2025-09-04T22:26:39.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":13},"url":"https://github.com/30515/matplotlib/issues/30515"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:1a9c767f-fc7a-89ab-b961-af25f90b8dbb |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 98E4:2DFBD1:B4866E:1085B3A:6A4E1D18 |
| html-safe-nonce | bc55f018bfcce32bd40e25fadec60e1b27dfedbbdef64b0f3ea574f97b392c0f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5OEU0OjJERkJEMTpCNDg2NkU6MTA4NUIzQTo2QTRFMUQxOCIsInZpc2l0b3JfaWQiOiI2ODkyNTk3MTA5MzQzNTI2MTY4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | d67050c95bfceae43d3be91730d1195d71f8dc94b15e1270a3aaea819beb23bf |
| hovercard-subject-tag | issue:3385677173 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/30515/issue_layout |
| twitter:image | https://opengraph.githubassets.com/ad29b4a9678410b609f81766c0bdcd6fd6625ec9b585632c1240d9ac9fd7c079/matplotlib/matplotlib/issues/30515 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ad29b4a9678410b609f81766c0bdcd6fd6625ec9b585632c1240d9ac9fd7c079/matplotlib/matplotlib/issues/30515 |
| og:image:alt | Problem Our naive approaches to crosshair cursors https://matplotlib.org/devdocs/gallery/widgets/cursor.html have the disadvantage that the crosshair is drawn on the figure. This means an expensive... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | timhoffm |
| hostname | github.com |
| expected-hostname | github.com |
| None | 030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0 |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 5fe497b4815fcce3df76c0e246faa739a82c3124 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width