René's URL Explorer Experiment


Title: FIX: don't round image sizes to pixel if meant to be unsampled by jklymak · Pull Request #25704 · matplotlib/matplotlib · GitHub

Open Graph Title: FIX: don't round image sizes to pixel if meant to be unsampled by jklymak · Pull Request #25704 · matplotlib/matplotlib

X Title: FIX: don't round image sizes to pixel if meant to be unsampled by jklymak · Pull Request #25704 · matplotlib/matplotlib

Description: Closes #8981 PR Summary For images we do some pixel rounding, but if we are doing unsampled images (eg imshow(..., interpolation='none')) and saving to a backend that allows rasters (svg, pdf), then we don't want to do the pixel rounding - that just makes the image sizes fractionally too large when that isn't needed at all if we don't resample. All the test images that changed just model my a pixel, and all have imshow(..., interpolation='none'). Old New code import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([0, 0, 1, 1, 0], [0, 1, 1, 0, 0], color='r', lw=0.1) np.random.seed(19680801) ax.imshow(np.random.randn(16, 16), cmap='Blues', extent=(0, 1, 0, 1), interpolation='none', vmin=-1,vmax=1) ax.set_xlim(-0.1, 1+0.1) ax.set_ylim(-0.1, 1+0.1) PR Checklist Documentation and Tests Has pytest style unit tests (and pytest passes) Documentation is sphinx and numpydoc compliant (the docs should build without error). New plotting related features are documented with examples. Release Notes New features are marked with a .. versionadded:: directive in the docstring and documented in doc/users/next_whats_new/ API changes are marked with a .. versionchanged:: directive in the docstring and documented in doc/api/next_api_changes/ Release notes conform with instructions in next_whats_new/README.rst or next_api_changes/README.rst

Open Graph Description: Closes #8981 PR Summary For images we do some pixel rounding, but if we are doing unsampled images (eg imshow(..., interpolation='none')) and saving to a backend that allows rasters (svg, p...

X Description: Closes #8981 PR Summary For images we do some pixel rounding, but if we are doing unsampled images (eg imshow(..., interpolation='none')) and saving to a backend that allows rasters...

Opengraph URL: https://github.com/matplotlib/matplotlib/pull/25704

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:eec96327-17b0-78b1-2263-ed3873b59536
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idCBF2:3AC7E6:1A2A63B:22A0A7B:6A51CDFC
html-safe-nonce6a65bdb753dd8db056946e557930f000d7f781d432b73915f065485a5c8262ff
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQkYyOjNBQzdFNjoxQTJBNjNCOjIyQTBBN0I6NkE1MUNERkMiLCJ2aXNpdG9yX2lkIjoiMjE5MTE3MzYzMzM3MTY1NTY3NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac7784455addc4414bed6b9968b2e54a584e62722d45440d6d17efb558b0d8c3b1
hovercard-subject-tagpull_request:1315786498
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/matplotlib/matplotlib/pull/25704/files
twitter:imagehttps://avatars.githubusercontent.com/u/1562854?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/1562854?s=400&v=4
og:image:altCloses #8981 PR Summary For images we do some pixel rounding, but if we are doing unsampled images (eg imshow(..., interpolation='none')) and saving to a backend that allows rasters (svg, p...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
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 full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7aed05249554b889eb33d002851a973eebcc7e91
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/pull/25704/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F25704%2Ffiles
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%2Fpull%2F25704%2Ffiles
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%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/pull/25704/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/25704/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/25704/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/25704/files
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/25704/files
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 408 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
Sign up for GitHub https://github.com/signup?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
ksundenhttps://github.com/ksunden
matplotlib:mainhttps://github.com/matplotlib/matplotlib/tree/main
jklymak:fix-dont-round-unsampledhttps://github.com/jklymak/matplotlib/tree/fix-dont-round-unsampled
Conversation 5 https://github.com/matplotlib/matplotlib/pull/25704
Commits 1 https://github.com/matplotlib/matplotlib/pull/25704/commits
Checks 0 https://github.com/matplotlib/matplotlib/pull/25704/checks
Files changed https://github.com/matplotlib/matplotlib/pull/25704/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/25704/files
FIX: don't round image sizes to pixel if meant to be unsampled https://github.com/matplotlib/matplotlib/pull/25704/files#top
Show all changes 1 commit https://github.com/matplotlib/matplotlib/pull/25704/files
6704bff FIX: don't round image sizes to nearest pixel if jklymak Apr 17, 2023 https://github.com/matplotlib/matplotlib/pull/25704/commits/6704bff82564e1ad113b8ae90bdbf317ceee7f21
Clear filters https://github.com/matplotlib/matplotlib/pull/25704/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/25704/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/25704/files
image.py https://github.com/matplotlib/matplotlib/pull/25704/files#diff-25ae7458ece3baeb36f57b6d14661c66781454a7a0532e5847eb4ed425ec0f5f
grayscale_alpha.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-3563aa6b1c10a41e984bb1fff8ba12a66dffaec8ec68d9725de86c34e7e80251
noscale.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-1749770f2b315ee3b195ea34a04bfb017ae2bd106f29a75f85d9aba29d2dfa03
noscale.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-50a9e4ffb8072c623e69e7faccd26d23a19956b4bdc61349f3ec649bfd668d2c
image_alpha.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-7c5cd57e7e06a00758f69a1d6be8dc733f9ccf55372853ce2e3e3e85bbb58c3b
image_alpha.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-476f22df267692f83ed07cb5935af54d201e7f5bb28ba10c9b2ac7a54092548a
image_placement.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-93c9bdab81fb68565e49eb7a34df62e8acea7894e551111a92730f7e9089eb25
image_placement.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-2f3c960d04fec6a726a8dd32ed42cf256e87fa43c29500a7cae62fec359e57e2
image_shift.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-b3d7363024d7294f18cf0cdbc5b6b660b3cc6b30941c8f1c5e4849f7e91145af
image_shift.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-fb3fb4726f7e4884eb9c44a62df8f5fdc5a3678a1909bd3f9e8d64a4e4a63356
imshow_masked_interpolation.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-a8f2110d67b4b20db63b55b577ab5468520a0b3eb7856c951592529e402fb15a
imshow_masked_interpolation.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-57f42393947af8e049b846ac7b51c4adbeb2aad7d9d9477653f616e5b5c86d65
interp_nearest_vs_none.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-e6b43e8d7f7ce809e0354f914d18a80d1f63b0372ed02587fc505ceaccf741f9
no_interpolation_origin.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-f9586f362ee5b6b2769cc7a19a3362eaf3683a29c99277cbd7a4691fe074da83
no_interpolation_origin.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-ac6a4cdbecc97a161ef01aec92ac642f1eb53128df67a0a7330b386f657bd560
rotate_image.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-74341ec278e55d0657a608fabaef5ab7154235a5b1e581653ce1e2a778e657b0
rotate_image.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-c95c3ec861d0339f80087ee64737c509c304527f36faebaf8fb767c8e7fd4267
tight_layout5.pdf https://github.com/matplotlib/matplotlib/pull/25704/files#diff-277781a2110fd9b6f042ea29ab47a7009331faf9f5bd9549cac3aca809b103e7
tight_layout5.svg https://github.com/matplotlib/matplotlib/pull/25704/files#diff-82719b9e502c8f936b84522dbcf5f4ec14d7e280b709d36b23d50071c5dbbdf9
test_image.py https://github.com/matplotlib/matplotlib/pull/25704/files#diff-8a96f32702b9c91b992e6cc9cb438eaaa26993101dbf40ea31ccbc097b47f68a
lib/matplotlib/image.pyhttps://github.com/matplotlib/matplotlib/pull/25704/files#diff-25ae7458ece3baeb36f57b6d14661c66781454a7a0532e5847eb4ed425ec0f5f
View file https://github.com/jklymak/matplotlib/blob/6704bff82564e1ad113b8ae90bdbf317ceee7f21/lib/matplotlib/image.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/25704/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/25704/files#diff-25ae7458ece3baeb36f57b6d14661c66781454a7a0532e5847eb4ed425ec0f5f
https://github.com/matplotlib/matplotlib/pull/25704/files#diff-25ae7458ece3baeb36f57b6d14661c66781454a7a0532e5847eb4ed425ec0f5f
lib/matplotlib/tests/baseline_images/test_backend_pdf/grayscale_alpha.pdfhttps://github.com/matplotlib/matplotlib/pull/25704/files#diff-3563aa6b1c10a41e984bb1fff8ba12a66dffaec8ec68d9725de86c34e7e80251
View file https://github.com/jklymak/matplotlib/blob/6704bff82564e1ad113b8ae90bdbf317ceee7f21/lib/matplotlib/tests/baseline_images/test_backend_pdf/grayscale_alpha.pdf
Open in desktop https://desktop.github.com
lib/matplotlib/tests/baseline_images/test_backend_svg/noscale.pdfhttps://github.com/matplotlib/matplotlib/pull/25704/files#diff-1749770f2b315ee3b195ea34a04bfb017ae2bd106f29a75f85d9aba29d2dfa03
View file https://github.com/jklymak/matplotlib/blob/6704bff82564e1ad113b8ae90bdbf317ceee7f21/lib/matplotlib/tests/baseline_images/test_backend_svg/noscale.pdf
Open in desktop https://desktop.github.com
lib/matplotlib/tests/baseline_images/test_backend_svg/noscale.svghttps://github.com/matplotlib/matplotlib/pull/25704/files#diff-50a9e4ffb8072c623e69e7faccd26d23a19956b4bdc61349f3ec649bfd668d2c
View file https://github.com/jklymak/matplotlib/blob/6704bff82564e1ad113b8ae90bdbf317ceee7f21/lib/matplotlib/tests/baseline_images/test_backend_svg/noscale.svg
Open in desktop https://desktop.github.com
Reload?https://github.com/matplotlib/matplotlib/pull/25704/files
lib/matplotlib/tests/baseline_images/test_image/image_alpha.pdfhttps://github.com/matplotlib/matplotlib/pull/25704/files#diff-7c5cd57e7e06a00758f69a1d6be8dc733f9ccf55372853ce2e3e3e85bbb58c3b
View file https://github.com/jklymak/matplotlib/blob/6704bff82564e1ad113b8ae90bdbf317ceee7f21/lib/matplotlib/tests/baseline_images/test_image/image_alpha.pdf
Open in desktop https://desktop.github.com
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/25704/files
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.