Title: [ENH]: UnitizedNorm · Issue #27706 · matplotlib/matplotlib · GitHub
Open Graph Title: [ENH]: UnitizedNorm · Issue #27706 · matplotlib/matplotlib
X Title: [ENH]: UnitizedNorm · Issue #27706 · matplotlib/matplotlib
Description: NOTE: This is very much in the discussion nobody should actually attempt it phase. Especially since #27721 is a probably better solution to the same meta problem. Problem Lots of requests for colormapping unitized data, such as #7383, #2...
Open Graph Description: NOTE: This is very much in the discussion nobody should actually attempt it phase. Especially since #27721 is a probably better solution to the same meta problem. Problem Lots of requests for color...
X Description: NOTE: This is very much in the discussion nobody should actually attempt it phase. Especially since #27721 is a probably better solution to the same meta problem. Problem Lots of requests for color...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/27706
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[ENH]: UnitizedNorm","articleBody":"NOTE: This is very much in the discussion nobody should actually attempt it phase. Especially since #27721 is a probably better solution to the same meta problem. \r\n\r\n### Problem\r\n\r\nLots of requests for colormapping unitized data, such as #7383, #25062, #23991, #19476, #17447\r\n\r\n### Proposed solution\r\n\r\nSince the number -\u003e number that can be colormapped conversion is done in the norm, proposing that we make an explicit Norm for handling units:\r\n\r\n### `UnitizedNorm`:\r\n\r\nCreate a new norm object `UnitizedNorm`:\r\n\r\n * maps data to numbers using `{Convertor}.convert` \r\n * labels colorbar using the formatters from `{Convertor}.axisinfo`\r\n\r\nThe hard work here is integrating this into the existing color-mapping pipeline, particularly the interpolation pipeline. One approach may be to add a flag indicating whether the unit can participate in existing schemes or whether it provides its own interpolation methods. If this works, then `.UnitizedNorm` can be shimmed in to act as an analogue to `NoNorm`\r\n\r\n### `UnitizedNorm(Normalize)`\r\n\r\nI don't know if this is actually possible, or remotely worth the effort given @ksunden's work, but a follow on proposal is that `UnitizedNorm` acts as a wrapper around `Normalize` objects so that the norms can take in unitized inputs, where `UnitizedNorm(NoNorm) == UnitizedNorm()` is the default described above. The objective would be to allow support for things like \r\n`UnitizedNorm(BoundaryNorm(['2011-01-01', '2011-02-01', '2011-03-01']))' or \"UnitizedNorm(Normalize(vmin=Pint(10))\" \r\n\r\nPretty sure that if this is possible, it ends up being some sorta dynamic monkeypatching of the existing class. But also if possible then it can be written as a decorator and that would be nice to have for custom Norms. \r\n\r\n\r\n","author":{"url":"https://github.com/story645","@type":"Person","name":"story645"},"datePublished":"2024-01-26T18:01:56.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/27706/matplotlib/issues/27706"}
| 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:e3347968-678c-b170-c31d-07f7170f27d5 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 843E:1B3289:1066492:1652BE9:6A520983 |
| html-safe-nonce | f24f1cbe57a3c765224f93ec1dd50a028b680df4d9e8988f6ba53770e573ac93 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NDNFOjFCMzI4OToxMDY2NDkyOjE2NTJCRTk6NkE1MjA5ODMiLCJ2aXNpdG9yX2lkIjoiMTk4Mzk2NDUzODE5ODk1MjMyMyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | c6d19cd00dc220ed998b57d3a36298d617c333fea2f0486f317da93e2e3e37f0 |
| hovercard-subject-tag | issue:2102653386 |
| 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/27706/issue_layout |
| twitter:image | https://opengraph.githubassets.com/e1b8041ab4f5436de8901d5581e81801b0eb2ff93ba4bfa6c1928bacf2be9bac/matplotlib/matplotlib/issues/27706 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/e1b8041ab4f5436de8901d5581e81801b0eb2ff93ba4bfa6c1928bacf2be9bac/matplotlib/matplotlib/issues/27706 |
| og:image:alt | NOTE: This is very much in the discussion nobody should actually attempt it phase. Especially since #27721 is a probably better solution to the same meta problem. Problem Lots of requests for color... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | story645 |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| 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 | 7aed05249554b889eb33d002851a973eebcc7e91 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width