Title: [Bug]: Setting norm with existing colorbar fails with 3.6.3 · Issue #25077 · matplotlib/matplotlib · GitHub
Open Graph Title: [Bug]: Setting norm with existing colorbar fails with 3.6.3 · Issue #25077 · matplotlib/matplotlib
X Title: [Bug]: Setting norm with existing colorbar fails with 3.6.3 · Issue #25077 · matplotlib/matplotlib
Description: Bug summary Setting the norm to a LogNorm after the colorbar has been created (e.g. in interactive code) fails with an Invalid vmin value in matplotlib 3.6.3. The same code worked in previous matplotlib versions. Not that vmin and vmax a...
Open Graph Description: Bug summary Setting the norm to a LogNorm after the colorbar has been created (e.g. in interactive code) fails with an Invalid vmin value in matplotlib 3.6.3. The same code worked in previous matpl...
X Description: Bug summary Setting the norm to a LogNorm after the colorbar has been created (e.g. in interactive code) fails with an Invalid vmin value in matplotlib 3.6.3. The same code worked in previous matpl...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/25077
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: Setting norm with existing colorbar fails with 3.6.3","articleBody":"### Bug summary\r\n\r\nSetting the norm to a `LogNorm` after the colorbar has been created (e.g. in interactive code) fails with an `Invalid vmin` value in matplotlib 3.6.3.\r\n\r\nThe same code worked in previous matplotlib versions.\r\n\r\nNot that vmin and vmax are explicitly set to values valid for `LogNorm` and no negative values (or values == 0) exist in the input data.\r\n\r\n### Code for reproduction\r\n\r\n```python\r\nimport matplotlib.pyplot as plt\r\nfrom matplotlib.colors import LogNorm\r\nimport numpy as np\r\n\r\n# create some random data to fill a 2d plot\r\nrng = np.random.default_rng(0)\r\nimg = rng.uniform(1, 5, (25, 25))\r\n\r\n# plot it\r\nfig, ax = plt.subplots(layout=\"constrained\")\r\nplot = ax.pcolormesh(img)\r\ncbar = fig.colorbar(plot, ax=ax)\r\n\r\nvmin = 1\r\nvmax = 5\r\n\r\nplt.ion()\r\nfig.show()\r\nplt.pause(0.5)\r\n\r\nplot.norm = LogNorm(vmin, vmax)\r\nplot.autoscale()\r\nplt.pause(0.5)\r\n```\r\n\r\n\r\n### Actual outcome\r\n\r\n```\r\nTraceback (most recent call last):\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/backends/backend_qt.py\", line 454, in _draw_idle\r\n self.draw()\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/backends/backend_agg.py\", line 405, in draw\r\n self.figure.draw(self.renderer)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/artist.py\", line 74, in draw_wrapper\r\n result = draw(artist, renderer, *args, **kwargs)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/figure.py\", line 3082, in draw\r\n mimage._draw_list_compositing_images(\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/image.py\", line 131, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/axes/_base.py\", line 3100, in draw\r\n mimage._draw_list_compositing_images(\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/image.py\", line 131, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/collections.py\", line 2148, in draw\r\n self.update_scalarmappable()\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/collections.py\", line 891, in update_scalarmappable\r\n self._mapped_colors = self.to_rgba(self._A, self._alpha)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/cm.py\", line 511, in to_rgba\r\n x = self.norm(x)\r\n File \"/home/mnoethe/.local/conda/envs/cta-dev/lib/python3.9/site-packages/matplotlib/colors.py\", line 1694, in __call__\r\n raise ValueError(\"Invalid vmin or vmax\")\r\nValueError: Invalid vmin or vmax\r\n```\r\n\r\n### Expected outcome\r\n\r\nWorks, colorbar and mappable are updated with new norm.\r\n\r\n### Additional information\r\n\r\n_No response_\r\n\r\n### Operating system\r\n\r\nLinux\r\n\r\n### Matplotlib Version\r\n\r\n3.6.3 (works with 3.6.2)\r\n\r\n### Matplotlib Backend\r\n\r\nMultpiple backends tested, same error in all (Qt5Agg, TkAgg, agg, ...)\r\n\r\n### Python version\r\n\r\n3.9.15\r\n\r\n### Jupyter version\r\n\r\nnot in jupyter\r\n\r\n### Installation\r\n\r\nconda","author":{"url":"https://github.com/maxnoe","@type":"Person","name":"maxnoe"},"datePublished":"2023-01-25T10:01:49.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/25077/matplotlib/issues/25077"}
| 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:ef6708cc-7327-fa24-f7ac-4d13fb6c6e77 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C06A:117213:674661:891CF1:6A5307CA |
| html-safe-nonce | 3e009192fcc8440a083a08c657a3e607b263c1634ea37698a49350681b4a2f24 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMDZBOjExNzIxMzo2NzQ2NjE6ODkxQ0YxOjZBNTMwN0NBIiwidmlzaXRvcl9pZCI6IjYyMTk0OTc4OTIwNzMzNzU2OTAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 707b1d5b48be2819f72d51662b63be2f1a6d28db57ffe440d66b54c5ecf9238b |
| hovercard-subject-tag | issue:1556367523 |
| 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/25077/issue_layout |
| twitter:image | https://opengraph.githubassets.com/6e1f4fe6ca3a91e4a9cbd366ae2014e8d1261a9f2df09104c03f1ac0705133f3/matplotlib/matplotlib/issues/25077 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/6e1f4fe6ca3a91e4a9cbd366ae2014e8d1261a9f2df09104c03f1ac0705133f3/matplotlib/matplotlib/issues/25077 |
| og:image:alt | Bug summary Setting the norm to a LogNorm after the colorbar has been created (e.g. in interactive code) fails with an Invalid vmin value in matplotlib 3.6.3. The same code worked in previous matpl... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | maxnoe |
| 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