{"action":"opened","issue":{"url":"https://api.github.com/repos/ioam/holoviews/issues/335","labels_url":"https://api.github.com/repos/ioam/holoviews/issues/335/labels{/name}","comments_url":"https://api.github.com/repos/ioam/holoviews/issues/335/comments","events_url":"https://api.github.com/repos/ioam/holoviews/issues/335/events","html_url":"https://github.com/ioam/holoviews/issues/335","id":120724583,"number":335,"title":"Separating options to set figure vs. data aspect ratio","user":{"login":"maxalbert","id":2692805,"avatar_url":"https://avatars.githubusercontent.com/u/2692805?v=3","gravatar_id":"","url":"https://api.github.com/users/maxalbert","html_url":"https://github.com/maxalbert","followers_url":"https://api.github.com/users/maxalbert/followers","following_url":"https://api.github.com/users/maxalbert/following{/other_user}","gists_url":"https://api.github.com/users/maxalbert/gists{/gist_id}","starred_url":"https://api.github.com/users/maxalbert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxalbert/subscriptions","organizations_url":"https://api.github.com/users/maxalbert/orgs","repos_url":"https://api.github.com/users/maxalbert/repos","events_url":"https://api.github.com/users/maxalbert/events{/privacy}","received_events_url":"https://api.github.com/users/maxalbert/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-07T08:44:27Z","updated_at":"2015-12-07T08:44:27Z","closed_at":null,"body":"(Following up on a discussion on Gitter.)\r\n\r\nCurrently Holoviews has an option called `aspect` which, when given a numerical argument, controls the aspect ratio of the overall figure (e.g., `aspect=1` yields a square-shaped plot). It is also possible to set `aspect='equal'`, but this operates on the level of the actual data axis ranges and ensures that the data itself isn't distorted (similarly to matplotlib's `aspect='equal'`). Typically, setting `aspect=equal` does **not** lead to a square-shaped plot (if the x-axis range is different from the y-axis range).\r\n\r\nThus `aspect=1` and `aspect='equal'` do two conceptually very different things and are effectively orthogonal to each other. You could even consider applying both to the same plot, e.g. to ensure that a subplot in a grid has a well-defined shape (say 3:1) but it still displays its data in a non-distorted way.\r\n\r\nMoreover, given that many people will come to Holoview from matplotlib background I believe it is confusing that Holoview's `aspect` option has the same name as matplotlib's  option but works very differently. This breaks user expectations and can lead to frustration.\r\n\r\nI suggest introducing a new option called `fig_aspect` which works on the figure level (and which would thus take over the role of the existing aspect option), and to make `aspect` work on the data level instead, as it is the case in matplotlib. This would allow something like the following:\r\n```\r\n%%opts Curve [fig_aspect=3 aspect='equal']\r\n```\r\nto achieve a 3:1 plot with non-distorted data.\r\n\r\nOne might even consider renaming the `aspect` option to `data_aspect` to be super clear about its meaning, but again this will lead to broken expectations for people coming from matplotlib so it's probably not a good idea. (Unless `aspect` and `data_aspect` are both allowed and simply aliases of each other?)"}}