Title: pcolormesh: masked parts of array render black when saving to PDF with Gouraud shading · Issue #11769 · matplotlib/matplotlib · GitHub
Open Graph Title: pcolormesh: masked parts of array render black when saving to PDF with Gouraud shading · Issue #11769 · matplotlib/matplotlib
X Title: pcolormesh: masked parts of array render black when saving to PDF with Gouraud shading · Issue #11769 · matplotlib/matplotlib
Description: Bug report If a 2D numpy array has NaNs (thereby interpreted by pcolormesh as masked), and pcolormesh is used to plot the array with Gouraud shading, then when saving to a PDF, instead of rendering those cells as transparent (making anyt...
Open Graph Description: Bug report If a 2D numpy array has NaNs (thereby interpreted by pcolormesh as masked), and pcolormesh is used to plot the array with Gouraud shading, then when saving to a PDF, instead of rendering...
X Description: Bug report If a 2D numpy array has NaNs (thereby interpreted by pcolormesh as masked), and pcolormesh is used to plot the array with Gouraud shading, then when saving to a PDF, instead of rendering...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/11769
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"pcolormesh: masked parts of array render black when saving to PDF with Gouraud shading","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\nIf a 2D numpy array has NaNs (thereby interpreted by pcolormesh as masked), and pcolormesh is used to plot the array with Gouraud shading, then when saving to a PDF, instead of rendering those cells as transparent (making anything underneath visible), the cells in question are rendered as black. This does not happen with rasterized plots, plots saved to PNG, or plots displayed interactively. This appears to be independent of backend. Simply using imshow is not an option if the data to be plotted is on a non-uniform grid.\r\n\r\n\u003c!--A short 1-2 sentences that succinctly describes the bug--\u003e\r\n\r\n**Code for reproduction**\r\n\r\n\u003c!--A minimum code snippet required to reproduce the bug, also minimizing the number of dependencies required--\u003e\r\n\r\n```python\r\nimport numpy as np\r\nimport matplotlib.pyplot as plt\r\n\r\nx,y = np.meshgrid(np.linspace(0.,100.),np.linspace(0.,100.))\r\n\r\nmap1 = np.sin(2*np.pi*x/100.)*np.sin(2*np.pi*y/100.)\r\nmap2 = x*y\r\n\r\nmap2[20:30,20:30] = np.nan\r\n\r\n# Plot with Gouraud shading and write to PDF\r\nplt.pcolormesh(x,y,map1,shading='Gouraud',cmap='magma')\r\nplt.pcolormesh(x,y,map2,shading='Gouraud',cmap='viridis',vmin=np.nanmin(map2),vmax=np.nanmax(map2))\r\nplt.savefig(\"mwe_gouraud.pdf\",bbox_inches='tight')\r\n\r\n# Plot with no shading and write to PDF\r\nplt.pcolormesh(x,y,map1,shading='Gouraud',cmap='magma')\r\nplt.pcolormesh(x,y,map2,cmap='viridis',vmin=np.nanmin(map2),vmax=np.nanmax(map2))\r\nplt.savefig(\"mwe_noshading.pdf\",bbox_inches='tight')\r\n\r\n# Plot with Gouraud shading and write to PNG\r\nplt.pcolormesh(x,y,map1,shading='Gouraud',cmap='magma')\r\nplt.pcolormesh(x,y,map2,shading='Gouraud',cmap='viridis',vmin=np.nanmin(map2),vmax=np.nanmax(map2))\r\nplt.savefig(\"mwe_gouraud.png\",bbox_inches='tight')\r\n```\r\n\r\n**Actual outcome**\r\n\r\nWith Gouraud shading, written to PDF:\r\n\r\n\r\nWithout Gouraud shading, written to PDF:\r\n\r\n\r\nWith Gouraud shading, written to PNG:\r\n\r\n\r\n**Expected outcome**\r\n\r\nAll three outputs should show map1 in the central rectangle where values have been set to np.nan (i.e. the masked values should be transparent). \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: Ubuntu 16.04\r\n * Matplotlib version: 2.2.2\r\n * Matplotlib backend: All\r\n * Python version: 2.7.9\r\n * Jupyter version (if applicable): N/A\r\n * Other libraries: NumPy 1.14.1\r\n\r\n\u003c!--Please tell us how you installed matplotlib and python e.g., from source, pip, conda--\u003e\r\nmatplotlib installed via pip\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/alphaparrot","@type":"Person","name":"alphaparrot"},"datePublished":"2018-07-25T00:36:00.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/11769/matplotlib/issues/11769"}
| 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:70f41d1f-8a46-6060-b4f4-42d65d07a6f0 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C47E:339F37:BE5430:113F367:6A54A606 |
| html-safe-nonce | ddea3066afa9127e96aff80c83e136042d58543c215f02a9b1125609d1cf5c5d |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNDdFOjMzOUYzNzpCRTU0MzA6MTEzRjM2Nzo2QTU0QTYwNiIsInZpc2l0b3JfaWQiOiI3NDI0MzM5OTU5MjQxNTQ5MzE4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | d09c0167caf3a30bb6b492387ba24caeba4fe1f5bafede770f4b20895a5fe733 |
| hovercard-subject-tag | issue:344250354 |
| 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/11769/issue_layout |
| twitter:image | https://opengraph.githubassets.com/38305da4acaa8e6825d2de4dbb61104e3156bb86a451fb03e55ea1e74761031a/matplotlib/matplotlib/issues/11769 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/38305da4acaa8e6825d2de4dbb61104e3156bb86a451fb03e55ea1e74761031a/matplotlib/matplotlib/issues/11769 |
| og:image:alt | Bug report If a 2D numpy array has NaNs (thereby interpreted by pcolormesh as masked), and pcolormesh is used to plot the array with Gouraud shading, then when saving to a PDF, instead of rendering... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | alphaparrot |
| 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 | f8cfff6384f62259baea531c7f58bc7040f8dd92 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width