Title: Colorbar update error with clim change in multi_image.py example · Issue #17052 · matplotlib/matplotlib · GitHub
Open Graph Title: Colorbar update error with clim change in multi_image.py example · Issue #17052 · matplotlib/matplotlib
X Title: Colorbar update error with clim change in multi_image.py example · Issue #17052 · matplotlib/matplotlib
Description: Bug report Bug summary In the multi_image example, the colorbar is responding correctly to set_clim only when called on the image to which the colorbar is directly attached. Code for reproduction This is just the example, https://matplot...
Open Graph Description: Bug report Bug summary In the multi_image example, the colorbar is responding correctly to set_clim only when called on the image to which the colorbar is directly attached. Code for reproduction T...
X Description: Bug report Bug summary In the multi_image example, the colorbar is responding correctly to set_clim only when called on the image to which the colorbar is directly attached. Code for reproduction T...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/17052
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Colorbar update error with clim change in multi_image.py example","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\nIn the multi_image example, the colorbar is responding correctly to `set_clim` only when called on the image to which the colorbar is directly attached. \r\n\r\n**Code for reproduction**\r\nThis is just the example, https://matplotlib.org/gallery/images_contours_and_fields/multi_image.html, with manipulation of the clim at the bottom.\r\n```python\r\nfrom matplotlib import colors\r\nimport matplotlib.pyplot as plt\r\nimport numpy as np\r\n\r\nnp.random.seed(19680801)\r\nNr = 3\r\nNc = 2\r\ncmap = \"cool\"\r\n\r\nfig, axs = plt.subplots(Nr, Nc)\r\nfig.suptitle('Multiple images')\r\n\r\nimages = []\r\nfor i in range(Nr):\r\n for j in range(Nc):\r\n # Generate data with a range that varies from one plot to the next.\r\n data = ((1 + i + j) / 10) * np.random.rand(10, 20) * 1e-6\r\n images.append(axs[i, j].imshow(data, cmap=cmap))\r\n axs[i, j].label_outer()\r\n\r\n# Find the min and max of all colors for use in setting the color scale.\r\nvmin = min(image.get_array().min() for image in images)\r\nvmax = max(image.get_array().max() for image in images)\r\nnorm = colors.Normalize(vmin=vmin, vmax=vmax)\r\nfor im in images:\r\n im.set_norm(norm)\r\n\r\nfig.colorbar(images[0], ax=axs, orientation='horizontal', fraction=.1)\r\n\r\n\r\n# Make images respond to changes in the norm of other images (e.g. via the\r\n# \"edit axis, curves and images parameters\" GUI on Qt), but be careful not to\r\n# recurse infinitely!\r\ndef update(changed_image):\r\n for im in images:\r\n if (changed_image.get_cmap() != im.get_cmap()\r\n or changed_image.get_clim() != im.get_clim()):\r\n im.set_cmap(changed_image.get_cmap())\r\n im.set_clim(changed_image.get_clim())\r\n\r\n\r\nfor im in images:\r\n im.callbacksSM.connect('changed', update)\r\n\r\nimages[1].set_clim(1e-9, 2e-8)\r\nfig.savefig('ax1_bad.png')\r\nimages[0].set_clim(1e-9, 2e-8)\r\nfig.savefig('ax0_good.png')\r\n\r\n```\r\n\r\n**Actual outcome**\r\nax1_bad.png:\r\n\r\n\r\n\r\n\r\n**Expected outcome**\r\nax0_good.png:\r\n\r\n\r\n\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: OSX\r\n * Matplotlib version: 3.1.2\r\n * Matplotlib backend (`print(matplotlib.get_backend())`): MacOSX, agg\r\n * Python version: 3.7\r\n ","author":{"url":"https://github.com/efiring","@type":"Person","name":"efiring"},"datePublished":"2020-04-07T03:30:23.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/17052/matplotlib/issues/17052"}
| 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:39a857de-fd02-d710-7c04-41330151adea |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D32E:25EC2E:6B1233:8DCBFC:6A5307D5 |
| html-safe-nonce | fc9f4d81f7bfe60074f6fb02a6575c460eab7a7f7662dce81b8f9174a49795f7 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMzJFOjI1RUMyRTo2QjEyMzM6OERDQkZDOjZBNTMwN0Q1IiwidmlzaXRvcl9pZCI6IjkwMTQ0MDY3NDQyMjM0NTEwOTQiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | eb6892f7bf801fb89e4f260de4ea587dddc4b003a60c8560d47705fb5a7e264c |
| hovercard-subject-tag | issue:595564528 |
| 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/17052/issue_layout |
| twitter:image | https://opengraph.githubassets.com/b55015b12af933e1f0204bafa018f2360bb202f192a7472af239df0b391782d7/matplotlib/matplotlib/issues/17052 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/b55015b12af933e1f0204bafa018f2360bb202f192a7472af239df0b391782d7/matplotlib/matplotlib/issues/17052 |
| og:image:alt | Bug report Bug summary In the multi_image example, the colorbar is responding correctly to set_clim only when called on the image to which the colorbar is directly attached. Code for reproduction T... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | efiring |
| 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 | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width