René's URL Explorer Experiment


Title: autoinfer norms from scale names in the "norm" kwarg of imshow() and friends. · Issue #20746 · matplotlib/matplotlib · GitHub

Open Graph Title: autoinfer norms from scale names in the "norm" kwarg of imshow() and friends. · Issue #20746 · matplotlib/matplotlib

X Title: autoinfer norms from scale names in the "norm" kwarg of imshow() and friends. · Issue #20746 · matplotlib/matplotlib

Description: Problem Now that Norms are auto-derived from Scales (see make_norm_from_scale), it may be nice to reuse the scale-name machinery to allow using strings to specify norms, e.g. imshow(..., norm="log") # => norm=colors.make_norm_from_scale(...

Open Graph Description: Problem Now that Norms are auto-derived from Scales (see make_norm_from_scale), it may be nice to reuse the scale-name machinery to allow using strings to specify norms, e.g. imshow(..., norm="log"...

X Description: Problem Now that Norms are auto-derived from Scales (see make_norm_from_scale), it may be nice to reuse the scale-name machinery to allow using strings to specify norms, e.g. imshow(..., norm="...

Opengraph URL: https://github.com/matplotlib/matplotlib/issues/20746

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"autoinfer norms from scale names in the \"norm\" kwarg of imshow() and friends.","articleBody":"\u003c!--\r\nWelcome! Thanks for thinking of a way to improve Matplotlib.\r\n\r\n\r\nBefore creating a new feature request please search the issues for relevant feature requests.\r\n--\u003e\r\n\r\n### Problem\r\n\r\nNow that Norms are auto-derived from Scales (see `make_norm_from_scale`), it may be nice to reuse the scale-name machinery to allow using strings to specify norms, e.g.\r\n```python\r\nimshow(..., norm=\"log\")\r\n# =\u003e norm=colors.make_norm_from_scale(scale.scale_factory(\"log\"))\r\n# a.k.a. norm=colors.LogNorm()\r\n```\r\nand perhaps\r\n```python\r\nimshow(..., norm=(\"log\", vmin, vmax))\r\n```\r\nor just allow\r\n```python\r\nimshow(..., norm=\"log\", vmin=vmin, vmax=vmax)\r\n```\r\n(#15769 deprecated `norm=LogNorm(), vmin=vmin, vmax=vmax` but that was because in that case it was unclear whether the passed-in norm should be mutated, whereas here it's always a new norm instance which can thus always be mutated).  (I'm not always particularly fond of using strings when objects would be more featureful, but here the machinery for scales is already present and well established so...)\r\n\r\nThis would seem relatively easy to implement, except for one detail: LogScale currently defaults to `nonpositive=\"clip\"` (see #9477 and the long tree of linked issues for the reason), whereas norms use `nonpositive=\"mask\"` (which is more or less implied by the existence of APIs like `Colormap.set_bad`).  While this can be resolved in an ad-hoc manner (e.g. by making sure that such scales have a `nonpositive` parameter/attribute and setting it accordingly), I wonder whether a more general solution is possible.\r\n\r\n### Proposed Solution\r\n\r\nAs described above.\r\n\r\n### Additional context and prior art\r\n\r\n\u003c!-- Add any other context or screenshots about the feature request here. You can also include links to examples of other programs that have something similar to your request. For example:\r\n\r\n* Another project [...] solved this by [...]\r\n--\u003e\r\nAFAICT, proplot uses a hard-coded mapping of norm names (https://proplot.readthedocs.io/en/latest/api/proplot.constructor.Norm.html).","author":{"url":"https://github.com/anntzer","@type":"Person","name":"anntzer"},"datePublished":"2021-07-27T14:20:57.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/20746/matplotlib/issues/20746"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:ff840ac4-6ed1-c37f-fdb9-feb17c1826c5
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idBED0:371DAA:B1C038:B511C0:6A51260E
html-safe-nonce798029a53d5016ca8b2a526338054f5a5d74b9596614ff0415ccddd480f4093b
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCRUQwOjM3MURBQTpCMUMwMzg6QjUxMUMwOjZBNTEyNjBFIiwidmlzaXRvcl9pZCI6IjEzMTQwNDM1Nzk1NDc1OTIyMDYiLCJyZWdpb25fZWRnZSI6InNlYSIsInJlZ2lvbl9yZW5kZXIiOiJzZWEifQ==
visitor-hmacae3166fc9c90de2798832d07de9c814e620fef6ed6425f115ac29bfa2bca1be3
hovercard-subject-tagissue:953936368
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/20746/issue_layout
twitter:imagehttps://opengraph.githubassets.com/0570bde4108f2135c08f227b0708430a0992e11171a80a19f7c655b162d87b2b/matplotlib/matplotlib/issues/20746
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/0570bde4108f2135c08f227b0708430a0992e11171a80a19f7c655b162d87b2b/matplotlib/matplotlib/issues/20746
og:image:altProblem Now that Norms are auto-derived from Scales (see make_norm_from_scale), it may be nice to reuse the scale-name machinery to allow using strings to specify norms, e.g. imshow(..., norm="log"...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameanntzer
hostnamegithub.com
expected-hostnamegithub.com
None689b683944b0d7f015d0e776452c970832fa81b82dc15284469b556ecced715b
turbo-cache-controlno-preview
go-importgithub.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git
octolytics-dimension-user_id215947
octolytics-dimension-user_loginmatplotlib
octolytics-dimension-repository_id1385122
octolytics-dimension-repository_nwomatplotlib/matplotlib
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1385122
octolytics-dimension-repository_network_root_nwomatplotlib/matplotlib
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release942b51ed3bd5feee3d5e2719f890a5fe286edbbb
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/issues/20746#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fissues%2F20746
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fissues%2F20746
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/issues/20746
Reloadhttps://github.com/matplotlib/matplotlib/issues/20746
Reloadhttps://github.com/matplotlib/matplotlib/issues/20746
Please reload this pagehttps://github.com/matplotlib/matplotlib/issues/20746
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/issues/20746
Notifications https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Fork 8.4k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Star 23k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Code https://github.com/matplotlib/matplotlib
Issues 1.1k https://github.com/matplotlib/matplotlib/issues
Pull requests 409 https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality 0 https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Code https://github.com/matplotlib/matplotlib
Issues https://github.com/matplotlib/matplotlib/issues
Pull requests https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
autoinfer norms from scale names in the "norm" kwarg of imshow() and friends.https://github.com/matplotlib/matplotlib/issues/20746#top
New featurehttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22New%20feature%22
topic: color/color & colormapshttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22topic%3A%20color%2Fcolor%20%26%20colormaps%22
topic: transforms and scaleshttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22topic%3A%20transforms%20and%20scales%22
v3.6.0https://github.com/matplotlib/matplotlib/milestone/65
https://github.com/anntzer
anntzerhttps://github.com/anntzer
on Jul 27, 2021https://github.com/matplotlib/matplotlib/issues/20746#issue-953936368
#15769https://github.com/matplotlib/matplotlib/pull/15769
#9477https://github.com/matplotlib/matplotlib/pull/9477
https://proplot.readthedocs.io/en/latest/api/proplot.constructor.Norm.htmlhttps://proplot.readthedocs.io/en/latest/api/proplot.constructor.Norm.html
New featurehttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22New%20feature%22
topic: color/color & colormapshttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22topic%3A%20color%2Fcolor%20%26%20colormaps%22
topic: transforms and scaleshttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22topic%3A%20transforms%20and%20scales%22
v3.6.0https://github.com/matplotlib/matplotlib/milestone/65
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.