Title: cm.set_bad() not working for specific values of grayscale and dpi when saving as pdf · Issue #20575 · matplotlib/matplotlib · GitHub
Open Graph Title: cm.set_bad() not working for specific values of grayscale and dpi when saving as pdf · Issue #20575 · matplotlib/matplotlib
X Title: cm.set_bad() not working for specific values of grayscale and dpi when saving as pdf · Issue #20575 · matplotlib/matplotlib
Description: Bug report Bug summary When modifying a colormap with cm.set_bad( color='0.9' ) and saving the image as pdf, the bad colors appear as green instead of gray. This happens for some data sets (I cannot reproduce it with synthetic data sets,...
Open Graph Description: Bug report Bug summary When modifying a colormap with cm.set_bad( color='0.9' ) and saving the image as pdf, the bad colors appear as green instead of gray. This happens for some data sets (I canno...
X Description: Bug report Bug summary When modifying a colormap with cm.set_bad( color='0.9' ) and saving the image as pdf, the bad colors appear as green instead of gray. This happens for some data sets ...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/20575
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"cm.set_bad() not working for specific values of grayscale and dpi when saving as pdf","articleBody":"\u003c!--To help us understand and resolve your issue, please fill out the form to the best of your ability.--\u003e\r\n\u003c!--You can feel free to delete the sections that do not apply.--\u003e\r\n\r\n### Bug report\r\n\r\n**Bug summary**\r\n\r\n\u003c!--A short 1-2 sentences that succinctly describes the bug--\u003e\r\n\r\nWhen modifying a colormap with cm.set_bad( color='0.9' ) and saving the image as pdf, the bad colors appear as green instead of gray. This happens for some data sets (I cannot reproduce it with synthetic data sets, it happens with some of my datasets), with some dpi values (for the attached example, it happens with dpi of 1200, but not with dpi of 1000), with some grayscale values (for the attached example, it doesn't happen with color values of '0.79' or darker), and when saving as pdf (it does not happen when displaying the figure with plt.show()).\r\n\r\nThis is the dataset used for the example code: [Data.csv](https://www.dropbox.com/s/7jzqylwwho2je64/Data.csv?dl=0)\r\n\r\n**Code for reproduction**\r\n\r\n\u003c!--A minimum code snippet required to reproduce the bug.\r\nPlease make sure to minimize the number of dependencies required, and provide\r\nany necessary plotted data.\r\nAvoid using threads, as Matplotlib is (explicitly) not thread-safe.--\u003e\r\n\r\n```python\r\n# Paste your code here\r\n#\r\n#\r\n\r\nimport numpy as np\r\nimport pandas as pd\r\n\r\nfrom copy import copy\r\nfrom matplotlib import cm\r\n\r\nfrom matplotlib import pyplot as plt\r\n\r\nfig_size_px = (1280, 960)\r\nfig_dpi = 200\r\nfig_size_inch = tuple( fi/fig_dpi for fi in fig_size_px )\r\n\r\nn = 1730\r\nm = 1731\r\n\r\ndata = pd.read_csv( 'Data.csv', index_col=0, engine='c', dtype=np.float64 ).values\r\n\r\nMask = np.uint8( np.reshape( data[ :, 0 ], ( m, n ) ) )\r\ndata = np.reshape( data[ :, 1 ], ( m, n ) )\r\n\r\ncmap_jet = copy( cm.jet )\r\ncmap_jet.set_bad( color='0.9' )\r\n# cmap_jet.set_bad( color='0.78' )\r\n# cmap_jet.set_bad( color=(0.9, 0.9, 0.9) )\r\n# cmap_jet.set_bad( color='#d8dcd6' )\r\n\r\nfig4 = plt.figure( 4, figsize=fig_size_inch, dpi=fig_dpi, facecolor='w', clear=True, tight_layout=True )\r\nfig4.clf()\r\nax4 = fig4.add_subplot(111, aspect='equal')\r\nax4.cla()\r\n\r\ndata_masked = np.ma.MaskedArray( data, Mask==0 )\r\n\r\nh4 = ax4.imshow( data_masked, origin='lower', cmap=cmap_jet, interpolation='Antialiased' )\r\n\r\nax4.get_xaxis().set_visible( False )\r\nax4.get_yaxis().set_visible( False )\r\n\r\nfig4.savefig( 'Plot_Bad.pdf', dpi=fig_dpi*6, format='pdf', transparent=True )\r\nfig4.savefig( 'Plot_Good.pdf', dpi=fig_dpi*5, format='pdf', transparent=True )\r\nplt.show()\r\n\r\n```\r\n\r\n**Actual outcome**\r\n\r\n\u003c!--The output produced by the above code, which may be a screenshot, console output, etc.--\u003e\r\n\r\n[Plot_Bad.pdf](https://github.com/matplotlib/matplotlib/files/6762424/Plot_Bad.pdf)\r\n\r\n```\r\n# If applicable, paste the console output here\r\n#\r\n#\r\n```\r\n\r\n**Expected outcome**\r\n\r\n\u003c!--A description of the expected outcome from the code snippet--\u003e\r\n\u003c!--If this used to work in an earlier version of Matplotlib, please note the version it used to work on--\u003e\r\n\r\n[Plot_Good.pdf](https://github.com/matplotlib/matplotlib/files/6762444/Plot_Good.pdf)\r\n\r\n**Matplotlib version**\r\n\u003c!--Please specify your platform and versions of the relevant libraries you are using:--\u003e\r\n * Operating system: Gentoo Linux\r\n * Matplotlib version (`import matplotlib; print(matplotlib.__version__)`): 3.4.2\r\n * Matplotlib backend (`print(matplotlib.get_backend())`): GTK3Agg\r\n * Python version: 3.9.5\r\n * Jupyter version (if applicable): \r\n * Other libraries: \r\n\r\n\u003c!--Please tell us how you installed matplotlib and python e.g., from source, pip, conda--\u003e\r\nFrom the distribution repositories\r\n\u003c!--If you installed from conda, please specify which channel you used if not the default--\u003e\r\n\r\n","author":{"url":"https://github.com/bugalo","@type":"Person","name":"bugalo"},"datePublished":"2021-07-05T07:35:19.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/20575/matplotlib/issues/20575"}
| 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:0dcdde7c-1968-fa0e-235d-fcea0915424b |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | CAB6:27934D:2B068E:39F599:6A5228CD |
| html-safe-nonce | 9d13029771d330d43ac505e96709939649c19aaaa6c1ec20918dcd01de552426 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQUI2OjI3OTM0RDoyQjA2OEU6MzlGNTk5OjZBNTIyOENEIiwidmlzaXRvcl9pZCI6IjE5NDU3MDQ4NTc4NTcwNDI2MzciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | e772a880bbaec53570b1386915a9a9e82a54d5ae0b11ab438c75c2032b98965c |
| hovercard-subject-tag | issue:936787454 |
| 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/20575/issue_layout |
| twitter:image | https://opengraph.githubassets.com/c5cf2695da3eb40383c23bf6eb4cffe20ab4aaa94646ed9d2d75776a17905c6c/matplotlib/matplotlib/issues/20575 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c5cf2695da3eb40383c23bf6eb4cffe20ab4aaa94646ed9d2d75776a17905c6c/matplotlib/matplotlib/issues/20575 |
| og:image:alt | Bug report Bug summary When modifying a colormap with cm.set_bad( color='0.9' ) and saving the image as pdf, the bad colors appear as green instead of gray. This happens for some data sets (I canno... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | bugalo |
| 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