Title: [Bug]: regression with setting ticklabels for colorbars in matplotlib 3.5.0b1 · Issue #20989 · matplotlib/matplotlib · GitHub
Open Graph Title: [Bug]: regression with setting ticklabels for colorbars in matplotlib 3.5.0b1 · Issue #20989 · matplotlib/matplotlib
X Title: [Bug]: regression with setting ticklabels for colorbars in matplotlib 3.5.0b1 · Issue #20989 · matplotlib/matplotlib
Description: Bug summary matplotlib 3.5.0b1 breaks the following code, which runs fine on 3.4.3 The crash happens while running the last line: cbar.ax.set_xticklabels(cbar.ax.get_xticklabels()) Admittedly this line seems like it should not do anythin...
Open Graph Description: Bug summary matplotlib 3.5.0b1 breaks the following code, which runs fine on 3.4.3 The crash happens while running the last line: cbar.ax.set_xticklabels(cbar.ax.get_xticklabels()) Admittedly this ...
X Description: Bug summary matplotlib 3.5.0b1 breaks the following code, which runs fine on 3.4.3 The crash happens while running the last line: cbar.ax.set_xticklabels(cbar.ax.get_xticklabels()) Admittedly this ...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/20989
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: regression with setting ticklabels for colorbars in matplotlib 3.5.0b1","articleBody":"### Bug summary\r\n\r\nmatplotlib 3.5.0b1 breaks the following code, which runs fine on 3.4.3\r\nThe crash happens while running the last line:\r\n```\r\ncbar.ax.set_xticklabels(cbar.ax.get_xticklabels())\r\n```\r\nAdmittedly this line seems like it should not do anything and certainly not produce an error.\r\nIn practice, my actual application contains the following:\r\n```python\r\ncbar.ax.set_xticklabels(cbar.ax.get_xticklabels(), rotation=45)\r\n```\r\nwhich looks more like a hack than a supported usage of matplotlib's api, so I'd be happy to change it but I was not yet able to find a cleaner way to perform that rotation.\r\nStill, no matter how untidy my application is, I'm fairly convinced that breaking it is a bug.\r\n\r\n### Code for reproduction\r\n\r\n```python\r\nimport matplotlib.pyplot as plt\r\nimport numpy as np\r\n\r\nx, y = np.mgrid[1:100, 1:100]\r\nz = np.random.random_sample(x.shape)\r\n\r\nfig, ax = plt.subplots()\r\n\r\nim = ax.contourf(x, y, z, levels=50)\r\ncbar = fig.colorbar(im, orientation='horizontal')\r\ncbar.ax.set_xticklabels(cbar.ax.get_xticklabels())\r\n```\r\n\r\n\r\n### Actual outcome\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eTraceback\u003c/summary\u003e\r\n\r\n```\r\n╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮\r\n│ /private/tmp/dustyn/t_mpl.py:11 in \u003cmodule\u003e │\r\n│ │\r\n│ 8 │\r\n│ 9 im = ax.contourf(x, y, z, levels=50) │\r\n│ 10 cbar = fig.colorbar(im, orientation='horizontal') │\r\n│ ❱ 11 cbar.ax.set_xticklabels(cbar.ax.get_xticklabels()) │\r\n│ 12 │\r\n│ │\r\n│ /Users/robcleme/.pyenv/versions/3.9.6/envs/mpl35_tmp/lib/python3.9/site-packages/matplotlib/axes │\r\n│ /_base.py:75 in wrapper │\r\n│ │\r\n│ 72 │ │ get_method = attrgetter(f\"{self.attr_name}.{self.method_name}\") │\r\n│ 73 │ │ │\r\n│ 74 │ │ def wrapper(self, *args, **kwargs): │\r\n│ ❱ 75 │ │ │ return get_method(self)(*args, **kwargs) │\r\n│ 76 │ │ │\r\n│ 77 │ │ wrapper.__module__ = owner.__module__ │\r\n│ 78 │ │ wrapper.__name__ = name │\r\n│ │\r\n│ /Users/robcleme/.pyenv/versions/3.9.6/envs/mpl35_tmp/lib/python3.9/site-packages/matplotlib/axis │\r\n│ .py:1798 in _set_ticklabels │\r\n│ │\r\n│ 1795 │ │ \"\"\" │\r\n│ 1796 │ │ if fontdict is not None: │\r\n│ 1797 │ │ │ kwargs.update(fontdict) │\r\n│ ❱ 1798 │ │ return self.set_ticklabels(labels, minor=minor, **kwargs) │\r\n│ 1799 │ │\r\n│ 1800 │ def _set_tick_locations(self, ticks, *, minor=False): │\r\n│ 1801 │ │ # see docstring of set_ticks │\r\n│ │\r\n│ /Users/robcleme/.pyenv/versions/3.9.6/envs/mpl35_tmp/lib/python3.9/site-packages/matplotlib/axis │\r\n│ .py:1720 in set_ticklabels │\r\n│ │\r\n│ 1717 │ │ │ # Passing [] as a list of ticklabels is often used as a way to │\r\n│ 1718 │ │ │ # remove all tick labels, so only error for \u003e 0 ticklabels │\r\n│ 1719 │ │ │ if len(locator.locs) != len(ticklabels) and len(ticklabels) != 0: │\r\n│ ❱ 1720 │ │ │ │ raise ValueError( │\r\n│ 1721 │ │ │ │ │ \"The number of FixedLocator locations\" │\r\n│ 1722 │ │ │ │ │ f\" ({len(locator.locs)}), usually from a call to\" │\r\n│ 1723 │ │ │ │ │ \" set_ticks, does not match\" │\r\n╰──────────────────────────────────────────────────────────────────────────────────────────────────╯\r\nValueError: The number of FixedLocator locations (51), usually from a call to set_ticks, does not match the number of ticklabels (9).\r\n```\r\n\r\n\u003c/details\u003e\r\n\r\n### Expected outcome\r\n\r\na boring image :)\r\n\r\n### Operating system\r\n\r\nOS/X\r\n\r\n### Matplotlib Version\r\n\r\n.5.0b1\r\n\r\n### Matplotlib Backend\r\n\r\nMacOSX\r\n\r\n### Python version\r\n\r\n3.9.6\r\n\r\n### Jupyter version\r\n\r\nN/A\r\n\r\n### Other libraries\r\n\r\n_No response_\r\n\r\n### Installation\r\n\r\npip\r\n\r\n### Conda channel\r\n\r\n_No response_","author":{"url":"https://github.com/neutrinoceros","@type":"Person","name":"neutrinoceros"},"datePublished":"2021-09-03T19:00:09.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":12},"url":"https://github.com/20989/matplotlib/issues/20989"}
| 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:d69e20eb-b53b-e9ce-11c7-44c36445c0b9 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AE04:322C61:2DA7E:39733:6A52E622 |
| html-safe-nonce | 16ff77af61123871891dfe9338d30170d2818101f33ebd1c6106f1211a2efba5 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRTA0OjMyMkM2MToyREE3RTozOTczMzo2QTUyRTYyMiIsInZpc2l0b3JfaWQiOiI1ODcwNjc2MzY3ODcyNTUwNDM0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 884f0b419137d50aa7a997340095d5f4f05a2ff733b8babe456065c385a742f0 |
| hovercard-subject-tag | issue:988028961 |
| 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/20989/issue_layout |
| twitter:image | https://opengraph.githubassets.com/ebe8c21909bc7b2af2c41b863ac4f1a1324691d7e3a44cf5eea36f0dd3cd7fca/matplotlib/matplotlib/issues/20989 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ebe8c21909bc7b2af2c41b863ac4f1a1324691d7e3a44cf5eea36f0dd3cd7fca/matplotlib/matplotlib/issues/20989 |
| og:image:alt | Bug summary matplotlib 3.5.0b1 breaks the following code, which runs fine on 3.4.3 The crash happens while running the last line: cbar.ax.set_xticklabels(cbar.ax.get_xticklabels()) Admittedly this ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | neutrinoceros |
| 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