Title: Wrong path in the html file when running save function in FuncAnimation · Issue #9960 · matplotlib/matplotlib · GitHub
Open Graph Title: Wrong path in the html file when running save function in FuncAnimation · Issue #9960 · matplotlib/matplotlib
X Title: Wrong path in the html file when running save function in FuncAnimation · Issue #9960 · matplotlib/matplotlib
Description: Bug report Bug summary In the below code, when using save function, it will create a html file named "line.html" and a folder named "line_frames" in the inner folder "anim". The save function run will usually. But if the path of the file...
Open Graph Description: Bug report Bug summary In the below code, when using save function, it will create a html file named "line.html" and a folder named "line_frames" in the inner folder "anim". The save function run w...
X Description: Bug report Bug summary In the below code, when using save function, it will create a html file named "line.html" and a folder named "line_frames" in the inner folder "anim&...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/9960
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Wrong path in the html file when running save function in FuncAnimation","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\nIn the below code, when using save function, it will create a html file named \"line.html\" and a folder named \"line_frames\" in the inner folder \"anim\".\r\nThe save function run will usually. But if the path of the file is in the inner folder just like this case, the frames path in the script tag of the html file will be wrong.\r\nOnly when changing the path myself, the script can run successfully.\r\nI think there might be a bug when creating html file.\r\n\r\n**Code for reproduction**\r\n\r\n\u003c!--A minimum code snippet required to reproduce the bug, also minimizing the number of dependencies required--\u003e\r\n\r\n```python\r\n# -*- coding: utf-8 -*-\r\n\"\"\"\r\nCreated on Sat Dec 9 02:38:37 2017\r\n\r\n@author: user\r\n\"\"\"\r\nfrom os import system\r\nimport numpy as np\r\nimport matplotlib.pyplot as plt\r\nfrom matplotlib.animation import FuncAnimation\r\n\r\nfig, ax = plt.subplots()\r\nfig.set_tight_layout(True)\r\n\r\nx=list(range(10))\r\ny = x\r\np, = ax.plot(x, y)\r\n\r\ndef update(i):\r\n label = 'timestep {0}'.format(i)\r\n print(label)\r\n # Update the line and the axes (with a new xlabel). Return a tuple of\r\n # \"artists\" that have to be redrawn for this frame.\r\n yi = []\r\n for j in range(10):\r\n yi.append(j**i)\r\n p.set_ydata(yi)\r\n ax.set_xlabel('x^'+str(i))\r\n return (p, ax)\r\n\r\nif __name__ == '__main__':\r\n system('mkdir anim')\r\n anim = FuncAnimation(fig, update, frames=np.arange(0, 5), interval=200)\r\n anim.save('anim/line.html', dpi=80, writer='imagemagick')\r\n```\r\n\r\n**Actual outcome**\r\n\r\n\u003c!--The output produced by the above code, which may be a screenshot, console output, etc.--\u003e\r\n**Please note the path in the for loop.**\r\n```html\r\n# The script tag in the file ./anim/line.html\r\n\r\n\u003cscript language=\"javascript\"\u003e\r\n /* Instantiate the Animation class. */\r\n /* The IDs given should match those used in the template above. */\r\n (function() {\r\n var img_id = \"_anim_img61ae9140e79d48909289ca13448775e9\";\r\n var slider_id = \"_anim_slider61ae9140e79d48909289ca13448775e9\";\r\n var loop_select_id = \"_anim_loop_select61ae9140e79d48909289ca13448775e9\";\r\n var frames = new Array(5);\r\n \r\n for (var i=0; i\u003c5; i++){\r\n frames[i] = \"anim/line_frames/frame\" + (\"0000000\" + i).slice(-7) +\r\n \".png\";\r\n }\r\n\r\n\r\n /* set a timeout to make sure all the above elements are created before\r\n the object is initialized. */\r\n setTimeout(function() {\r\n anim61ae9140e79d48909289ca13448775e9 = new Animation(frames, img_id, slider_id, 200.0,\r\n loop_select_id);\r\n }, 0);\r\n })()\r\n\u003c/script\u003e\r\n```\r\n\r\n**Expected outcome**\r\n**Please note the path in the for loop.**\r\n```html\r\n\u003cscript language=\"javascript\"\u003e\r\n /* Instantiate the Animation class. */\r\n /* The IDs given should match those used in the template above. */\r\n (function() {\r\n var img_id = \"_anim_img61ae9140e79d48909289ca13448775e9\";\r\n var slider_id = \"_anim_slider61ae9140e79d48909289ca13448775e9\";\r\n var loop_select_id = \"_anim_loop_select61ae9140e79d48909289ca13448775e9\";\r\n var frames = new Array(5);\r\n \r\n for (var i=0; i\u003c5; i++){\r\n frames[i] = \"line_frames/frame\" + (\"0000000\" + i).slice(-7) +\r\n \".png\";\r\n }\r\n\r\n\r\n /* set a timeout to make sure all the above elements are created before\r\n the object is initialized. */\r\n setTimeout(function() {\r\n anim61ae9140e79d48909289ca13448775e9 = new Animation(frames, img_id, slider_id, 200.0,\r\n loop_select_id);\r\n }, 0);\r\n })()\r\n\u003c/script\u003e\r\n```\r\n\r\n\r\n\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: Windows7\r\n * Matplotlib version: 2.1.0 \r\n * Matplotlib backend (`print(matplotlib.get_backend())`):Qt5Agg\r\n * Python version: 3.6.3\r\n * IDE: Spyder@Anaconda\r\n * Other libraries: IPython 6.1.0\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\n\r\n","author":{"url":"https://github.com/EricPwg","@type":"Person","name":"EricPwg"},"datePublished":"2017-12-08T19:12:03.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/9960/matplotlib/issues/9960"}
| 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:4ee18ddf-c97f-4138-d2ab-a12523cc85d1 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DD5E:23D46B:135F75:1ADF4D:6A511195 |
| html-safe-nonce | 5e590532daacff800d5def7e94ecfcad99d451e77eb41f76b8ba0879dabfd7cb |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERDVFOjIzRDQ2QjoxMzVGNzU6MUFERjREOjZBNTExMTk1IiwidmlzaXRvcl9pZCI6IjMyNTQwOTQwNzI1MjA5NzA2NDUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 755cfc3fe4465e07975e6513084d331b2e1f7bc8c9bd2ded7c98d486c66bb8de |
| hovercard-subject-tag | issue:280588224 |
| 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/9960/issue_layout |
| twitter:image | https://opengraph.githubassets.com/a0fc20c152128b0027373e49c900ff46e5512c8d49d434a9bd833d1469b8cb96/matplotlib/matplotlib/issues/9960 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/a0fc20c152128b0027373e49c900ff46e5512c8d49d434a9bd833d1469b8cb96/matplotlib/matplotlib/issues/9960 |
| og:image:alt | Bug report Bug summary In the below code, when using save function, it will create a html file named "line.html" and a folder named "line_frames" in the inner folder "anim". The save function run w... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | EricPwg |
| hostname | github.com |
| expected-hostname | github.com |
| None | b076e100febaa00374cd89239f915d00dd3187f7c68b12bc2b7688181305344d |
| 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 | f9137f6d981cbbfd780af369f80ce890b2d0d2d4 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width