{"action":"closed","issue":{"url":"https://api.github.com/repos/bokeh/bokeh/issues/3747","repository_url":"https://api.github.com/repos/bokeh/bokeh","labels_url":"https://api.github.com/repos/bokeh/bokeh/issues/3747/labels{/name}","comments_url":"https://api.github.com/repos/bokeh/bokeh/issues/3747/comments","events_url":"https://api.github.com/repos/bokeh/bokeh/issues/3747/events","html_url":"https://github.com/bokeh/bokeh/issues/3747","id":128859320,"number":3747,"title":"Expose frame height/width to Bokeh server","user":{"login":"jdugge","id":2399255,"avatar_url":"https://avatars.githubusercontent.com/u/2399255?v=3","gravatar_id":"","url":"https://api.github.com/users/jdugge","html_url":"https://github.com/jdugge","followers_url":"https://api.github.com/users/jdugge/followers","following_url":"https://api.github.com/users/jdugge/following{/other_user}","gists_url":"https://api.github.com/users/jdugge/gists{/gist_id}","starred_url":"https://api.github.com/users/jdugge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdugge/subscriptions","organizations_url":"https://api.github.com/users/jdugge/orgs","repos_url":"https://api.github.com/users/jdugge/repos","events_url":"https://api.github.com/users/jdugge/events{/privacy}","received_events_url":"https://api.github.com/users/jdugge/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bokeh/bokeh/labels/type:%20discussion","name":"type: discussion","color":"2659A0"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2016-01-26T15:45:33Z","updated_at":"2016-03-19T19:24:49Z","closed_at":"2016-03-19T19:24:49Z","body":"In order to do server-side downsampling efficiently it's important to know the size of the axis area measured in pixels (e.g. for [M4 aggregation](http://www.vldb.org/pvldb/vol7/p797-jugel.pdf)).\r\n\r\nCurrently, it seems like there's no way for the Python script in the Bokeh server to learn about the dimensions of the axis area: there's a `figure.plot_width` attribute, but this refers to the overall width of the figure (including labels and margins), and it doesn't seem to get updated when the user changes the figure size using the `resize` tool.\r\n\r\nIt would be great if the axis size could be communicated to the Python backend somehow (perhaps in conjunction with a `axis_width.on_change` callback."}}