{"action":"created","issue":{"url":"https://api.github.com/repos/hadley/ggplot2/issues/1633","repository_url":"https://api.github.com/repos/hadley/ggplot2","labels_url":"https://api.github.com/repos/hadley/ggplot2/issues/1633/labels{/name}","comments_url":"https://api.github.com/repos/hadley/ggplot2/issues/1633/comments","events_url":"https://api.github.com/repos/hadley/ggplot2/issues/1633/events","html_url":"https://github.com/hadley/ggplot2/pull/1633","id":154652675,"number":1633,"title":"facets to ggproto","user":{"login":"thomasp85","id":1775316,"avatar_url":"https://avatars.githubusercontent.com/u/1775316?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasp85","html_url":"https://github.com/thomasp85","followers_url":"https://api.github.com/users/thomasp85/followers","following_url":"https://api.github.com/users/thomasp85/following{/other_user}","gists_url":"https://api.github.com/users/thomasp85/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasp85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasp85/subscriptions","organizations_url":"https://api.github.com/users/thomasp85/orgs","repos_url":"https://api.github.com/users/thomasp85/repos","events_url":"https://api.github.com/users/thomasp85/events{/privacy}","received_events_url":"https://api.github.com/users/thomasp85/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/hadley/ggplot2/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"thomasp85","id":1775316,"avatar_url":"https://avatars.githubusercontent.com/u/1775316?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasp85","html_url":"https://github.com/thomasp85","followers_url":"https://api.github.com/users/thomasp85/followers","following_url":"https://api.github.com/users/thomasp85/following{/other_user}","gists_url":"https://api.github.com/users/thomasp85/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasp85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasp85/subscriptions","organizations_url":"https://api.github.com/users/thomasp85/orgs","repos_url":"https://api.github.com/users/thomasp85/repos","events_url":"https://api.github.com/users/thomasp85/events{/privacy}","received_events_url":"https://api.github.com/users/thomasp85/received_events","type":"User","site_admin":false},"assignees":[{"login":"thomasp85","id":1775316,"avatar_url":"https://avatars.githubusercontent.com/u/1775316?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasp85","html_url":"https://github.com/thomasp85","followers_url":"https://api.github.com/users/thomasp85/followers","following_url":"https://api.github.com/users/thomasp85/following{/other_user}","gists_url":"https://api.github.com/users/thomasp85/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasp85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasp85/subscriptions","organizations_url":"https://api.github.com/users/thomasp85/orgs","repos_url":"https://api.github.com/users/thomasp85/repos","events_url":"https://api.github.com/users/thomasp85/events{/privacy}","received_events_url":"https://api.github.com/users/thomasp85/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/hadley/ggplot2/milestones/15","html_url":"https://github.com/hadley/ggplot2/milestones/v2.2.0","labels_url":"https://api.github.com/repos/hadley/ggplot2/milestones/15/labels","id":1909550,"number":15,"title":"v2.2.0","description":"","creator":{"login":"hadley","id":4196,"avatar_url":"https://avatars.githubusercontent.com/u/4196?v=3","gravatar_id":"","url":"https://api.github.com/users/hadley","html_url":"https://github.com/hadley","followers_url":"https://api.github.com/users/hadley/followers","following_url":"https://api.github.com/users/hadley/following{/other_user}","gists_url":"https://api.github.com/users/hadley/gists{/gist_id}","starred_url":"https://api.github.com/users/hadley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hadley/subscriptions","organizations_url":"https://api.github.com/users/hadley/orgs","repos_url":"https://api.github.com/users/hadley/repos","events_url":"https://api.github.com/users/hadley/events{/privacy}","received_events_url":"https://api.github.com/users/hadley/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":17,"state":"open","created_at":"2016-07-28T13:50:42Z","updated_at":"2016-08-24T13:19:31Z","due_on":null,"closed_at":null},"comments":23,"created_at":"2016-05-13T07:46:28Z","updated_at":"2016-08-29T12:58:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/hadley/ggplot2/pulls/1633","html_url":"https://github.com/hadley/ggplot2/pull/1633","diff_url":"https://github.com/hadley/ggplot2/pull/1633.diff","patch_url":"https://github.com/hadley/ggplot2/pull/1633.patch"},"body":"@hadley \r\n\r\nThis PR is currently empty, but opened now to make a venue for discussing implementation etc.\r\n\r\nMy goal, besides streamlining ggplot2 OOP usage, is to make facets extensible by third parties in the same way as scales, geoms, etc. are now. For this to work the facet class need to be quite powerful in terms of which responsibilities it has, so I want to check with you before I begin working on it.\r\n\r\nAs I see it the facet class has the following responsibilities:\r\n\r\n1. Get data and return modified data with PANEL column\r\n2. Potentially set range of position scales\r\n3. Get a gList of layers for each panel and lay them out in a gtable\r\n4. Decorate around the facets (both axes, facet headings, etc)\r\n\r\nIn the end this means that the facet class takes full responsibility of all drawing within the plotting area (title, legends, margins, subtitles, etc should be handled elsewhere)\r\n\r\nMind you, this is before I’ve looked deeply into how facets are currently implemented. There might be additional responsibilities that appears…\r\n\r\nHow do you feel about the above?"},"comment":{"url":"https://api.github.com/repos/hadley/ggplot2/issues/comments/243116689","html_url":"https://github.com/hadley/ggplot2/pull/1633#issuecomment-243116689","issue_url":"https://api.github.com/repos/hadley/ggplot2/issues/1633","id":243116689,"user":{"login":"hadley","id":4196,"avatar_url":"https://avatars.githubusercontent.com/u/4196?v=3","gravatar_id":"","url":"https://api.github.com/users/hadley","html_url":"https://github.com/hadley","followers_url":"https://api.github.com/users/hadley/followers","following_url":"https://api.github.com/users/hadley/following{/other_user}","gists_url":"https://api.github.com/users/hadley/gists{/gist_id}","starred_url":"https://api.github.com/users/hadley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hadley/subscriptions","organizations_url":"https://api.github.com/users/hadley/orgs","repos_url":"https://api.github.com/users/hadley/repos","events_url":"https://api.github.com/users/hadley/events{/privacy}","received_events_url":"https://api.github.com/users/hadley/received_events","type":"User","site_admin":false},"created_at":"2016-08-29T12:58:49Z","updated_at":"2016-08-29T12:58:49Z","body":"@smouksassi please don't discuss new features here. I'm going to delete your comments to keep this thread clean"}}
{"actor":{"display_login":"hadley"}}