Title: animation blitting is no longer working · Issue #4947 · matplotlib/matplotlib · GitHub
Open Graph Title: animation blitting is no longer working · Issue #4947 · matplotlib/matplotlib
X Title: animation blitting is no longer working · Issue #4947 · matplotlib/matplotlib
Description: This is mentioned in #4897. I currently do not have a solution for this one, but I do have a script that demonstrates the problem. I am using the current devel branch and a Qt5Agg backend. The following is in reference to the attached sc...
Open Graph Description: This is mentioned in #4897. I currently do not have a solution for this one, but I do have a script that demonstrates the problem. I am using the current devel branch and a Qt5Agg backend. The foll...
X Description: This is mentioned in #4897. I currently do not have a solution for this one, but I do have a script that demonstrates the problem. I am using the current devel branch and a Qt5Agg backend. The foll...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/4947
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"animation blitting is no longer working","articleBody":"This is mentioned in #4897.\n\nI currently do not have a solution for this one, but I do have a script that demonstrates the problem. I am using the current devel branch and a Qt5Agg backend.\n\nThe following is in reference to the attached script.\n\nThe line 'bg = fig.canvas.copy_from_bbox( fig.bbox )' will in fact save the current Agg buffer state as appropriate. The later calls to 'fig.canvas.restore_region( bg, fig.bbox )' however do not seem to actually restore the Agg buffers to the saved state, because in the subsequent call to 'fig.canvas.blit( fig.bbox )' the Agg buffers are still in the same state as before the call to 'restore_region'. The result is the red ellipse gets drawn multiple times to the Agg backend.\n\nAt the end of the script a new call to the canvas 'draw' method causes the entire figure to redraw (and the Agg backend), and the plot then is updated to look as expected.\n\n``` python\n======================================================================\n# blit.py\n======================================================================\n#!/bin/env python\n\nimport pylab as p\nfrom matplotlib.patches import Ellipse\nimport math, time\n\np.ion()\nfig, ax = p.subplots()\nax.set_xlim( [ -3, 3 ] )\nax.set_ylim( [ -3, 3 ] )\n\ne1 = Ellipse( [ 0, 0 ], 1, 2, 0 )\nax.add_patch( e1 )\n\ne2 = Ellipse( [ 2, 0 ], 1, 3, 0 )\nax.add_patch( e2 )\n\nraw_input( \"Press return to start blit\" )\n\nbg = fig.canvas.copy_from_bbox( fig.bbox )\n\ne0 = Ellipse( [1,0], 1, 1, 0, facecolor=\"red\" )\nax.add_patch( e0 )\n\nt0 = time.time()\nnum = 0\nwhile True:\n dt = time.time() - t0\n if dt \u003e 1:\n print \"%d frames in %g sec (%g frames/sec)\" % ( num, dt, num/dt )\n break\n\n fig.canvas.restore_region( bg, fig.bbox )\n\n x = num / 10.0\n e0.center = [ math.cos( x ), math.sin( x ) ]\n\n ax.draw_artist( e0 )\n fig.canvas.blit( fig.bbox )\n\n num += 1\n\n\nprint \"=================\"\nprint \"Qt5 bug: red ellipse is not removed each time.\"\nraw_input( \"Press return to remove red ellipse\" )\n\ne0.remove()\nfig.canvas.restore_region( bg, fig.bbox )\nfig.canvas.blit( fig.bbox )\n\nprint \"=================\"\nprint \"The red ellipse should be gone - if it's still there, try to resize\"\nprint \"the screen. In some cases an extra 'draw' happens here which \"\nprint \"causes the entire plot to redraw and look correct. In Qt5agg, \"\nprint \"this shows the bug...\"\nprint\nraw_input( \"Press return to exit\" )\n\n```\n","author":{"url":"https://github.com/jrevans","@type":"Person","name":"jrevans"},"datePublished":"2015-08-17T23:02:18.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/4947/matplotlib/issues/4947"}
| 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:6d59ddd2-0f1a-e623-418d-1d7e0e14a745 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | EB3E:2FB335:DFC7FD:12C78C7:6A528FF2 |
| html-safe-nonce | 9952824f116cb5ca553cb54731868ce127fc79b986e7579184f5eda53c80152a |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQjNFOjJGQjMzNTpERkM3RkQ6MTJDNzhDNzo2QTUyOEZGMiIsInZpc2l0b3JfaWQiOiI0ODMwMzg3NTE1ODYwMDk0OTYyIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 000a6103b9192df5a80e6f50b85299a072ec56879afcd246995600c9d93c9e69 |
| hovercard-subject-tag | issue:101527728 |
| 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/4947/issue_layout |
| twitter:image | https://opengraph.githubassets.com/7891601c8e635161f7a866a0089fb0d9db7fdc9d66f70ac0c283f12cf9c55559/matplotlib/matplotlib/issues/4947 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/7891601c8e635161f7a866a0089fb0d9db7fdc9d66f70ac0c283f12cf9c55559/matplotlib/matplotlib/issues/4947 |
| og:image:alt | This is mentioned in #4897. I currently do not have a solution for this one, but I do have a script that demonstrates the problem. I am using the current devel branch and a Qt5Agg backend. The foll... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jrevans |
| 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