René's URL Explorer Experiment


Title: Nbagg backend by pelson · Pull Request #3008 · matplotlib/matplotlib · GitHub

Open Graph Title: Nbagg backend by pelson · Pull Request #3008 · matplotlib/matplotlib

X Title: Nbagg backend by pelson · Pull Request #3008 · matplotlib/matplotlib

Description: Implements the nbAgg backend for interactive figures in the IPython notebook, using IPython's comm protocol. @jasongrout's excellent proof of concept CommFigure in #2524 was used as an initial base (which itself made good use of @mdboom and my own work on the WebAgg backend), but I've removed the CommFigure concept and have instead plumbed this into a real matplotlib backend. As a result, using IPython notebook v2.0 I am able to run the following code in the notebook to achieve an interactive figure: import matplotlib matplotlib.use('nbagg') import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi, 1000) plt.plot(x, np.cos(3*x) - np.sin(2*x)**2) plt.show() I've currently only been able to test this with Firefox 24.4, so any feedback from other browsers would be valuable. There are a few features I've not added at this point (but would like to do so): An event loop Support for interactive mode and the ability to "re-show" a figure. Better keyboard event integration with IPython notebook (currently pressing the close button destroys all IPython keyboard events, and when the mpl figure has focus, no IPython shortcuts are triggered) Remove the hack which identifies which cell contains the output that has just been written (using the unique ID defined at show time of a figure). Adding %matplotlib nbagg (in IPython itself) Testing... (at least a user acceptance test script for individuals to run).

Open Graph Description: Implements the nbAgg backend for interactive figures in the IPython notebook, using IPython's comm protocol. @jasongrout's excellent proof of concept CommFigure in #2524 was used as an init...

X Description: Implements the nbAgg backend for interactive figures in the IPython notebook, using IPython's comm protocol. @jasongrout's excellent proof of concept CommFigure in #2524 was used as...

Opengraph URL: https://github.com/matplotlib/matplotlib/pull/3008

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:a3a18e14-56a9-1958-c436-b18d0ff5ad1f
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idE03E:15E3B:DA7B7B:12796D7:6A5327EC
html-safe-nonce8d39c7782ebf5d95afe38ca03495b9cd1e93351afd62e5c70fb596f3be3ed07e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMDNFOjE1RTNCOkRBN0I3QjoxMjc5NkQ3OjZBNTMyN0VDIiwidmlzaXRvcl9pZCI6IjU2MjExNjc0MTk3MDE3OTg4OTIiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac8655da89d20638079d3b34b68e2befafd968a52a2cf10c1f7cf0ae9d65655834
hovercard-subject-tagpull_request:15118003
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/matplotlib/matplotlib/pull/3008/files
twitter:imagehttps://avatars.githubusercontent.com/u/810663?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/810663?s=400&v=4
og:image:altImplements the nbAgg backend for interactive figures in the IPython notebook, using IPython's comm protocol. @jasongrout's excellent proof of concept CommFigure in #2524 was used as an init...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git
octolytics-dimension-user_id215947
octolytics-dimension-user_loginmatplotlib
octolytics-dimension-repository_id1385122
octolytics-dimension-repository_nwomatplotlib/matplotlib
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1385122
octolytics-dimension-repository_network_root_nwomatplotlib/matplotlib
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release07a982c1d40157c619b364352b704c3ce66bb332
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/pull/3008/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F3008%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F3008%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/pull/3008/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/3008/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/3008/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/3008/files
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/3008/files
Notifications https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Fork 8.4k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Star 23k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Code https://github.com/matplotlib/matplotlib
Issues 1.1k https://github.com/matplotlib/matplotlib/issues
Pull requests 408 https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality 0 https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Code https://github.com/matplotlib/matplotlib
Issues https://github.com/matplotlib/matplotlib/issues
Pull requests https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
tacaswellhttps://github.com/tacaswell
matplotlib:masterhttps://github.com/matplotlib/matplotlib/tree/master
pelson:nbagg_backendhttps://github.com/pelson/matplotlib/tree/nbagg_backend
Conversation 32 https://github.com/matplotlib/matplotlib/pull/3008
Commits 3 https://github.com/matplotlib/matplotlib/pull/3008/commits
Checks 0 https://github.com/matplotlib/matplotlib/pull/3008/checks
Files changed https://github.com/matplotlib/matplotlib/pull/3008/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/3008/files
Nbagg backend https://github.com/matplotlib/matplotlib/pull/3008/files#top
Show all changes 3 commits https://github.com/matplotlib/matplotlib/pull/3008/files
5156c10 Small changes to clean up webagg javascript code a bit. Nov 15, 2013 https://github.com/matplotlib/matplotlib/pull/3008/commits/5156c10c27af4bd1fd9075ceddf1aad1254e29ed
a70af94 Added the nbAgg backend to allow interactive figures in the IPython pelson Apr 17, 2014 https://github.com/matplotlib/matplotlib/pull/3008/commits/a70af94a0f5ddbf543bad5ec588fac5bf2354697
5b11ec3 Updates to make behaviour more consistent with other backends. Remove… pelson May 19, 2014 https://github.com/matplotlib/matplotlib/pull/3008/commits/5b11ec3e8de8fa0cf12b82d78b7e09abe7613964
Clear filters https://github.com/matplotlib/matplotlib/pull/3008/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/3008/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/3008/files
backend_bases.py https://github.com/matplotlib/matplotlib/pull/3008/files#diff-c21fb96269cbb9b214edf0c22981b347d8b710abaad167da678242ce8a539bb2
backend_nbagg.py https://github.com/matplotlib/matplotlib/pull/3008/files#diff-7a496f2cfdd909d2c60b97b27d30b782910b350cb20bd3f4a05c4b9bf4865ce8
backend_webagg.py https://github.com/matplotlib/matplotlib/pull/3008/files#diff-d09b3ce6f78962aceac2a3a030f6536a55c062fb8ca55bc98b4b5d517a59f6c4
backend_webagg_core.py https://github.com/matplotlib/matplotlib/pull/3008/files#diff-6d1e28fa9eb5254b30f1dd613881417bb4f173ea90669dc55c3bb4fe9b5ab73f
mpl.js https://github.com/matplotlib/matplotlib/pull/3008/files#diff-3d28b42501903eca02aae8918d17e784588bd03cc0658a1f0020430d63146100
nbagg_mpl.js https://github.com/matplotlib/matplotlib/pull/3008/files#diff-66ec420eb4b11ded51214991905e71f57677f7169b256e2f7313e39ae2a4b86e
single_figure.html https://github.com/matplotlib/matplotlib/pull/3008/files#diff-2ec9bf2d3c87b50dc3a790198f4e45d62c828da72d34ac59d9bf06b445827bc6
path.py https://github.com/matplotlib/matplotlib/pull/3008/files#diff-732128c2653eae0f24d387b13fac9d2aed0a716c21e79e4ef68dcc7300c97562
rcsetup.py https://github.com/matplotlib/matplotlib/pull/3008/files#diff-cbdeb0e4217c66c0eab3ff5027da14906cb705419722f8269bc9ccaadd2422b1
lib/matplotlib/backend_bases.pyhttps://github.com/matplotlib/matplotlib/pull/3008/files#diff-c21fb96269cbb9b214edf0c22981b347d8b710abaad167da678242ce8a539bb2
View file https://github.com/pelson/matplotlib/blob/5b11ec3e8de8fa0cf12b82d78b7e09abe7613964/lib/matplotlib/backend_bases.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/3008/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/3008/files#diff-c21fb96269cbb9b214edf0c22981b347d8b710abaad167da678242ce8a539bb2
https://github.com/matplotlib/matplotlib/pull/3008/files#diff-c21fb96269cbb9b214edf0c22981b347d8b710abaad167da678242ce8a539bb2
lib/matplotlib/backends/backend_nbagg.pyhttps://github.com/matplotlib/matplotlib/pull/3008/files#diff-7a496f2cfdd909d2c60b97b27d30b782910b350cb20bd3f4a05c4b9bf4865ce8
View file https://github.com/pelson/matplotlib/blob/5b11ec3e8de8fa0cf12b82d78b7e09abe7613964/lib/matplotlib/backends/backend_nbagg.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/3008/{{ revealButtonHref }}
lib/matplotlib/backends/backend_webagg.pyhttps://github.com/matplotlib/matplotlib/pull/3008/files#diff-d09b3ce6f78962aceac2a3a030f6536a55c062fb8ca55bc98b4b5d517a59f6c4
View file https://github.com/pelson/matplotlib/blob/5b11ec3e8de8fa0cf12b82d78b7e09abe7613964/lib/matplotlib/backends/backend_webagg.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/3008/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/3008/files#diff-d09b3ce6f78962aceac2a3a030f6536a55c062fb8ca55bc98b4b5d517a59f6c4
https://github.com/matplotlib/matplotlib/pull/3008/files#diff-d09b3ce6f78962aceac2a3a030f6536a55c062fb8ca55bc98b4b5d517a59f6c4
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/3008/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.