{"action":"opened","issue":{"url":"https://api.github.com/repos/bokeh/rbokeh/issues/184","repository_url":"https://api.github.com/repos/bokeh/rbokeh","labels_url":"https://api.github.com/repos/bokeh/rbokeh/issues/184/labels{/name}","comments_url":"https://api.github.com/repos/bokeh/rbokeh/issues/184/comments","events_url":"https://api.github.com/repos/bokeh/rbokeh/issues/184/events","html_url":"https://github.com/bokeh/rbokeh/issues/184","id":176750095,"number":184,"title":"in list of lists grid_plot with missing entries, axis labels may be blank","user":{"login":"igoldin2u","id":16209389,"avatar_url":"https://avatars.githubusercontent.com/u/16209389?v=3","gravatar_id":"","url":"https://api.github.com/users/igoldin2u","html_url":"https://github.com/igoldin2u","followers_url":"https://api.github.com/users/igoldin2u/followers","following_url":"https://api.github.com/users/igoldin2u/following{/other_user}","gists_url":"https://api.github.com/users/igoldin2u/gists{/gist_id}","starred_url":"https://api.github.com/users/igoldin2u/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igoldin2u/subscriptions","organizations_url":"https://api.github.com/users/igoldin2u/orgs","repos_url":"https://api.github.com/users/igoldin2u/repos","events_url":"https://api.github.com/users/igoldin2u/events{/privacy}","received_events_url":"https://api.github.com/users/igoldin2u/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-13T21:07:58Z","updated_at":"2016-09-13T21:07:58Z","closed_at":null,"body":"If you have a list-of-lists call to `grid_plot`, and if an entry in the list of lists is missing, and if that entry is the first in a row or in a column, then the axis label for that entire row or column will be blank. See the X axis label for cut==Ideal:\r\n\r\n```\r\nlibrary(dplyr)\r\ndata_frame_to_lofl <- function(figs, xcol, ycol, figcol) {\r\n  lapply(split(figs, figs[, xcol]), function(d1) {\r\n    lapply(split(d1, d1[, ycol]), function(d2) {\r\n      d2[, figcol][[1]][[1]]\r\n    })\r\n  })\r\n}\r\n\r\nggplot2::diamonds %>%\r\n  sample_frac(0.1) %>% # Too many rows in diamonds for this example\r\n  group_by(cut, color) %>%\r\n  filter(!(cut==\"Ideal\" & color==\"E\")) %>% # Impose data missingness\r\n  do(fig=ly_points(figure(), x=carat, y=price, data=.)) %>%\r\n  complete(cut, color) %>% # Back-fill a NULL entry for cut==Ideal and color==E\r\n  data_frame_to_lofl(\"cut\", \"color\", \"fig\") %>% # Create a list of lists\r\n  grid_plot(same_axes=TRUE)\r\n```\r\n\r\nThis would be fixed by only displaying each axis label once, if that's possible in Bokeh."}}
{"actor":{"display_login":"igoldin2u"}}