Title: Datetime plot fails with 'Agg' backend in interactive mode · Issue #15409 · matplotlib/matplotlib · GitHub
Open Graph Title: Datetime plot fails with 'Agg' backend in interactive mode · Issue #15409 · matplotlib/matplotlib
X Title: Datetime plot fails with 'Agg' backend in interactive mode · Issue #15409 · matplotlib/matplotlib
Description: Bug report Bug summary I try to plot the time series data, and the X-axis represents the datetime. The code succeeds when use the 'Qt5Agg' backend, but fails when use the 'Agg' backend Code for reproduction The example code based on the ...
Open Graph Description: Bug report Bug summary I try to plot the time series data, and the X-axis represents the datetime. The code succeeds when use the 'Qt5Agg' backend, but fails when use the 'Agg' backend Code for rep...
X Description: Bug report Bug summary I try to plot the time series data, and the X-axis represents the datetime. The code succeeds when use the 'Qt5Agg' backend, but fails when use the 'Agg' back...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/15409
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Datetime plot fails with 'Agg' backend in interactive mode","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\n\u003c!--A short 1-2 sentences that succinctly describes the bug--\u003e\r\nI try to plot the time series data, and the X-axis represents the datetime. The code succeeds when use the 'Qt5Agg' backend, but fails when use the 'Agg' backend\r\n**Code for reproduction**\r\nThe example code based on the matplotlib tutorials(https://matplotlib.org/3.1.1/gallery/ticks_and_spines/date_concise_formatter.html).\r\nWhen use the 'Qt5Agg' backend, the code works well.(To show my issue, I use the `python` instead of `ipython`, because the `ipython` will use 'Qt5Agg' backend as default in my ENV)\r\n```python\r\nPython 3.6.8 (default, Oct 7 2019, 12:59:55) \r\n[GCC 8.3.0] on linux\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n\u003e\u003e\u003e import datetime\r\n\u003e\u003e\u003e import matplotlib.pyplot as plt\r\n\u003e\u003e\u003e import matplotlib.dates as mdates\r\n\u003e\u003e\u003e import numpy as np\r\n\u003e\u003e\u003e base = datetime.datetime(2005, 2, 1)\r\n\u003e\u003e\u003e dates = np.array([base + datetime.timedelta(hours=(2 * i)) for i in range(732)])\r\n\u003e\u003e\u003e np.random.seed(19680801)\r\n\u003e\u003e\u003e N = len(dates)\r\n\u003e\u003e\u003e y = np.cumsum(np.random.randn(N))\r\n\u003e\u003e\u003e import matplotlib\r\n\u003e\u003e\u003e matplotlib.get_backend()\r\n'Qt5Agg'\r\n\u003e\u003e\u003e plt.plot(dates,y)\r\n[\u003cmatplotlib.lines.Line2D object at 0x7f621c039828\u003e]\r\n```\r\nAnd I get the expected figure.\r\n\r\nBut when I use 'Agg' backend, the code fails.\r\n```python\r\nPython 3.6.8 (default, Oct 7 2019, 12:59:55) \r\n[GCC 8.3.0] on linux\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n\u003e\u003e\u003e import matplotlib\r\n\u003e\u003e\u003e matplotlib.use('Agg')\r\n\u003e\u003e\u003e matplotlib.get_backend()\r\n'agg'\r\n\u003e\u003e\u003e import datetime\r\n\u003e\u003e\u003e import matplotlib.pyplot as plt\r\n\u003e\u003e\u003e import matplotlib.dates as mdates\r\n\u003e\u003e\u003e import numpy as np\r\n\u003e\u003e\u003e base = datetime.datetime(2005, 2, 1)\r\n\u003e\u003e\u003e dates = np.array([base + datetime.timedelta(hours=(2 * i)) for i in range(732)])\r\n\u003e\u003e\u003e N = len(dates)\r\n\u003e\u003e\u003e np.random.seed(19680801)\r\n\u003e\u003e\u003e y = np.cumsum(np.random.randn(N))\r\n\u003e\u003e\u003e plt.plot(dates,y)\r\nTraceback (most recent call last):\r\n File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/pyplot.py\", line 2795, in plot\r\n is not None else {}), **kwargs)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axes/_axes.py\", line 1666, in plot\r\n lines = [*self._get_lines(*args, data=data, **kwargs)]\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py\", line 225, in __call__\r\n yield from self._plot_args(this, kwargs)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py\", line 391, in _plot_args\r\n x, y = self._xy_from_xy(x, y)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py\", line 243, in _xy_from_xy\r\n bx = self.axes.xaxis.update_units(x)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axis.py\", line 1498, in update_units\r\n self._update_axisinfo()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axis.py\", line 1516, in _update_axisinfo\r\n self.set_major_locator(info.majloc)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axis.py\", line 1651, in set_major_locator\r\n self.stale = True\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 230, in stale\r\n self.stale_callback(self, val)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 51, in _stale_axes_callback\r\n self.axes.stale = val\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 230, in stale\r\n self.stale_callback(self, val)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/figure.py\", line 51, in _stale_figure_callback\r\n self.figure.stale = val\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 230, in stale\r\n self.stale_callback(self, val)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/pyplot.py\", line 589, in _auto_draw_if_interactive\r\n fig.canvas.draw_idle()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/backend_bases.py\", line 1907, in draw_idle\r\n self.draw(*args, **kwargs)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/backends/backend_agg.py\", line 388, in draw\r\n self.figure.draw(self.renderer)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 38, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/figure.py\", line 1709, in draw\r\n renderer, self, artists, self.suppressComposite)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/image.py\", line 135, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 38, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axes/_base.py\", line 2647, in draw\r\n mimage._draw_list_compositing_images(renderer, self, artists)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/image.py\", line 135, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/artist.py\", line 38, in draw_wrapper\r\n return draw(artist, renderer, *args, **kwargs)\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axis.py\", line 1203, in draw\r\n ticks_to_draw = self._update_ticks()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axis.py\", line 1079, in _update_ticks\r\n major_locs = self.get_majorticklocs()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/axis.py\", line 1324, in get_majorticklocs\r\n return self.major.locator()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/dates.py\", line 1431, in __call__\r\n self.refresh()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/dates.py\", line 1451, in refresh\r\n dmin, dmax = self.viewlim_to_dt()\r\n File \"/home/fanxp/.local/lib/python3.6/site-packages/matplotlib/dates.py\", line 1202, in viewlim_to_dt\r\n .format(vmin))\r\nValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units\r\n\u003e\u003e\u003e\r\n```\r\nSo, how can I resolve this issue? Thanks!\r\n\u003c!--A description of the expected outcome from the code snippet--\u003e\r\n\u003c!--If this used to work in an earlier version of Matplotlib, please note the version it used to work on--\u003e\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 18.04\r\n * Matplotlib version: 3.1.1\r\n * Matplotlib backend (`print(matplotlib.get_backend())`): agg\r\n * Python version: 3.6.8\r\n * Jupyter version (if applicable):\r\n * Other libraries: numpy 1.17.2\r\n\r\n\u003c!--Please tell us how you installed matplotlib and python e.g., from source, pip, conda--\u003e\r\n\u003c!--If you installed from conda, please specify which channel you used if not the default--\u003e\r\nI use `pip` to install numpy and matplotlib, and I use the system's python3\r\n","author":{"url":"https://github.com/fanxinping","@type":"Person","name":"fanxinping"},"datePublished":"2019-10-12T06:05:28.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":13},"url":"https://github.com/15409/matplotlib/issues/15409"}
| 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:2f1844d0-bcc2-924d-ec26-173822bd94c3 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C202:277986:19EF5DD:225029A:6A52C752 |
| html-safe-nonce | 977e297cd9388db0c5c87a41856797100a1df65ae0244450b53b24cd28283695 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMjAyOjI3Nzk4NjoxOUVGNUREOjIyNTAyOUE6NkE1MkM3NTIiLCJ2aXNpdG9yX2lkIjoiNjYxMjAyMTc2MDc3Nzk2MzM0NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | ecbd0997d3aa3827fd6178858f29bc10815a32313e9c9ecbe06d151886dd1de5 |
| hovercard-subject-tag | issue:506138640 |
| 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/15409/issue_layout |
| twitter:image | https://opengraph.githubassets.com/657b59f8db2a8654d33dfe9e4d899b3b08262f9f017560d8dc7eae9a71c06cd6/matplotlib/matplotlib/issues/15409 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/657b59f8db2a8654d33dfe9e4d899b3b08262f9f017560d8dc7eae9a71c06cd6/matplotlib/matplotlib/issues/15409 |
| og:image:alt | Bug report Bug summary I try to plot the time series data, and the X-axis represents the datetime. The code succeeds when use the 'Qt5Agg' backend, but fails when use the 'Agg' backend Code for rep... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | fanxinping |
| 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