Title: [Bug]: Plotting labels with Greek latters in math mode produces Parsing error when plt.show() runs · Issue #21463 · matplotlib/matplotlib · GitHub
Open Graph Title: [Bug]: Plotting labels with Greek latters in math mode produces Parsing error when plt.show() runs · Issue #21463 · matplotlib/matplotlib
X Title: [Bug]: Plotting labels with Greek latters in math mode produces Parsing error when plt.show() runs · Issue #21463 · matplotlib/matplotlib
Description: Bug summary Looks like with the latest version of pyparsing (https://github.com/pyparsing/pyparsing), plotting labels in math mode with greek letters in them fails, when plt.show() runs. No error when pyparsing==2.4.7 is installed, but e...
Open Graph Description: Bug summary Looks like with the latest version of pyparsing (https://github.com/pyparsing/pyparsing), plotting labels in math mode with greek letters in them fails, when plt.show() runs. No error w...
X Description: Bug summary Looks like with the latest version of pyparsing (https://github.com/pyparsing/pyparsing), plotting labels in math mode with greek letters in them fails, when plt.show() runs. No error w...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/21463
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: Plotting labels with Greek latters in math mode produces Parsing error when plt.show() runs","articleBody":"### Bug summary\r\n\r\nLooks like with the latest version of pyparsing (https://github.com/pyparsing/pyparsing), plotting labels in math mode with greek letters in them fails, when `plt.show()` runs.\r\n\r\nNo error when `pyparsing==2.4.7` is installed, but error occurs when `pyparsing==3.0.1` is installed. \r\n\r\nI couldn't reproduce it just by using that package without going through matplotlib, hence why I'm submitting this report here. Any suggestions are welcome, and I'm happy to take it to pyparsing if it's certain that the problem is not within matplotlib.\r\n\r\n### Code for reproduction\r\n\r\n```python\r\nThe following doesn't fail at all\r\n\r\nimport matplotlib.pyplot as plt\r\nplt.xlabel(r\"$\\Delta$\")\r\nplt.show()\r\n```\r\n\r\nBut when `\\Delta` appears with some other text, it fails:\r\n```\r\nimport matplotlib.pyplot as plt\r\nplt.xlabel(r\"$\\Delta x$\")\r\nplt.show()\r\n```\r\n\r\n\r\n### Actual outcome\r\n\r\n```\r\nTraceback (most recent call last):\r\n File \"lib/python3.9/site-packages/matplotlib/_mathtext.py\", line 2277, in parse\r\n result = self._expression.parseString(s)\r\n File \"lib/python3.9/site-packages/pyparsing/core.py\", line 1107, in parse_string\r\n raise exc.with_traceback(None)\r\npyparsing.exceptions.ParseFatalException: Unknown symbol: \\Delta, found '\\' (at char 0), (line:1, col:1)\r\n\r\nThe above exception was the direct cause of the following exception:\r\nTraceback (most recent call last):\r\n File \"lib/python3.9/site-packages/IPython/core/interactiveshell.py\", line 3444, in run_code\r\n exec(code_obj, self.user_global_ns, self.user_ns)\r\n File \"\u003cipython-input-14-1eb00ff78cf2\u003e\", line 1, in \u003cmodule\u003e\r\n plt.show()\r\n File \"lib/python3.9/site-packages/matplotlib/pyplot.py\", line 378, in show\r\n return _backend_mod.show(*args, **kwargs)\r\n File \"/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend/backend_interagg.py\", line 29, in __call__\r\n manager.show(**kwargs)\r\n File \"/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend/backend_interagg.py\", line 112, in show\r\n self.canvas.show()\r\n File \"/Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend/backend_interagg.py\", line 68, in show\r\n FigureCanvasAgg.draw(self)\r\n File \"lib/python3.9/site-packages/matplotlib/backends/backend_agg.py\", line 406, in draw\r\n self.figure.draw(self.renderer)\r\n File \"lib/python3.9/site-packages/matplotlib/artist.py\", line 74, in draw_wrapper\r\n result = draw(artist, renderer, *args, **kwargs)\r\n File \"lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"lib/python3.9/site-packages/matplotlib/figure.py\", line 2790, in draw\r\n mimage._draw_list_compositing_images(\r\n File \"lib/python3.9/site-packages/matplotlib/image.py\", line 132, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"lib/python3.9/site-packages/matplotlib/_api/deprecation.py\", line 431, in wrapper\r\n return func(*inner_args, **inner_kwargs)\r\n File \"lib/python3.9/site-packages/matplotlib/axes/_base.py\", line 2921, in draw\r\n mimage._draw_list_compositing_images(renderer, self, artists)\r\n File \"lib/python3.9/site-packages/matplotlib/image.py\", line 132, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"lib/python3.9/site-packages/matplotlib/axis.py\", line 1155, in draw\r\n self.label.draw(renderer)\r\n File \"lib/python3.9/site-packages/matplotlib/artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"lib/python3.9/site-packages/matplotlib/text.py\", line 679, in draw\r\n bbox, info, descent = textobj._get_layout(renderer)\r\n File \"lib/python3.9/site-packages/matplotlib/text.py\", line 314, in _get_layout\r\n w, h, d = renderer.get_text_width_height_descent(\r\n File \"lib/python3.9/site-packages/matplotlib/backends/backend_agg.py\", line 235, in get_text_width_height_descent\r\n self.mathtext_parser.parse(s, self.dpi, prop)\r\n File \"lib/python3.9/site-packages/matplotlib/mathtext.py\", line 452, in parse\r\n return self._parse_cached(s, dpi, prop, _force_standard_ps_fonts)\r\n File \"lib/python3.9/site-packages/matplotlib/mathtext.py\", line 473, in _parse_cached\r\n box = self._parser.parse(s, font_output, fontsize, dpi)\r\n File \"lib/python3.9/site-packages/matplotlib/_mathtext.py\", line 2279, in parse\r\n raise ValueError(\"\\n\".join([\"\",\r\nValueError: \r\n\\Delta x\r\n^\r\nUnknown symbol: \\Delta, found '\\' (at char 0), (line:1, col:1)\r\n```\r\n\r\n### Expected outcome\r\n\r\nPlot with label with \"∆x\" in it.\r\n\r\n### Operating system\r\n\r\n_No response_\r\n\r\n### Matplotlib Version\r\n\r\n3.4.3\r\n\r\n### Matplotlib Backend\r\n\r\nagg\r\n\r\n### Python version\r\n\r\n3.9.6\r\n\r\n### Jupyter version\r\n\r\n_No response_\r\n\r\n### Other libraries\r\n\r\npyparsing==3.0.1\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/gabicca","@type":"Person","name":"gabicca"},"datePublished":"2021-10-25T14:11:25.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/21463/matplotlib/issues/21463"}
| 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:d65c26ce-bd7e-0de0-0f87-361228ce13b0 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 818A:14F0B0:2CD049:3B4A0B:6A52EBF6 |
| html-safe-nonce | d2d4822f19a64e7470eed11e641664fbe07d7322d00eed0b292ef5606a1cbb6b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MThBOjE0RjBCMDoyQ0QwNDk6M0I0QTBCOjZBNTJFQkY2IiwidmlzaXRvcl9pZCI6IjExOTM3Mjg0NzE3MDYyOTkzODIiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | dc52ca18929dabe138a4cd89a5dc92dd62b56bf07f5efd876c178a69fa62887f |
| hovercard-subject-tag | issue:1035189201 |
| 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/21463/issue_layout |
| twitter:image | https://opengraph.githubassets.com/cb7de9b11c4cf667957ecad7a4327e580589d136d97305800995a8e095402f9d/matplotlib/matplotlib/issues/21463 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/cb7de9b11c4cf667957ecad7a4327e580589d136d97305800995a8e095402f9d/matplotlib/matplotlib/issues/21463 |
| og:image:alt | Bug summary Looks like with the latest version of pyparsing (https://github.com/pyparsing/pyparsing), plotting labels in math mode with greek letters in them fails, when plt.show() runs. No error w... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | gabicca |
| 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