{"action":"created","issue":{"url":"https://api.github.com/repos/ioam/holoviews/issues/175","labels_url":"https://api.github.com/repos/ioam/holoviews/issues/175/labels{/name}","comments_url":"https://api.github.com/repos/ioam/holoviews/issues/175/comments","events_url":"https://api.github.com/repos/ioam/holoviews/issues/175/events","html_url":"https://github.com/ioam/holoviews/issues/175","id":90385274,"number":175,"title":"Plot insets (feature request)","user":{"login":"basnijholt","id":6897215,"avatar_url":"https://avatars.githubusercontent.com/u/6897215?v=3","gravatar_id":"","url":"https://api.github.com/users/basnijholt","html_url":"https://github.com/basnijholt","followers_url":"https://api.github.com/users/basnijholt/followers","following_url":"https://api.github.com/users/basnijholt/following{/other_user}","gists_url":"https://api.github.com/users/basnijholt/gists{/gist_id}","starred_url":"https://api.github.com/users/basnijholt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basnijholt/subscriptions","organizations_url":"https://api.github.com/users/basnijholt/orgs","repos_url":"https://api.github.com/users/basnijholt/repos","events_url":"https://api.github.com/users/basnijholt/events{/privacy}","received_events_url":"https://api.github.com/users/basnijholt/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ioam/holoviews/labels/feature","name":"feature","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-06-23T13:11:36Z","updated_at":"2015-06-23T16:27:22Z","closed_at":null,"body":"I would like to put small plots inside my Images, like is done in: http://matplotlib.org/1.3.1/mpl_toolkits/axes_grid/users/overview.html\r\n"},"comment":{"url":"https://api.github.com/repos/ioam/holoviews/issues/comments/114563232","html_url":"https://github.com/ioam/holoviews/issues/175#issuecomment-114563232","issue_url":"https://api.github.com/repos/ioam/holoviews/issues/175","id":114563232,"user":{"login":"philippjfr","id":1550771,"avatar_url":"https://avatars.githubusercontent.com/u/1550771?v=3","gravatar_id":"","url":"https://api.github.com/users/philippjfr","html_url":"https://github.com/philippjfr","followers_url":"https://api.github.com/users/philippjfr/followers","following_url":"https://api.github.com/users/philippjfr/following{/other_user}","gists_url":"https://api.github.com/users/philippjfr/gists{/gist_id}","starred_url":"https://api.github.com/users/philippjfr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/philippjfr/subscriptions","organizations_url":"https://api.github.com/users/philippjfr/orgs","repos_url":"https://api.github.com/users/philippjfr/repos","events_url":"https://api.github.com/users/philippjfr/events{/privacy}","received_events_url":"https://api.github.com/users/philippjfr/received_events","type":"User","site_admin":false},"created_at":"2015-06-23T16:27:22Z","updated_at":"2015-06-23T16:27:22Z","body":"> The position of an inset is part of the data if you consider generalizing the concept of an insets. Let's say, I have some contours in a figure but I only want to overlay these contours in the top-left (i.e just like an inset). Then because you can see the data underneath the contour lines, the position of the inset in relation to the data matters (i.e the data between layers needs may need to be aligned and in the same space). Even if you disregard this point, the inset position is not a backend dependent setting.\r\n\r\nNot sure I quite follow but whatever we end up doing the Overlay will have to somehow group inset objects together, probably on the inset bounds. \r\n\r\n>In conclusion, I think building an inset should be as simple as calling a method on Overlay to specify the portion of space occupied by the inset layers.\r\n\r\nTo me this is still less clear and flexible than controlling it via plot options. There's different kinds of insets in matplotlib, something that a general interface like this could never account for. Secondly it breaks compositionality, you can't declare a single Element as an inset and then reuse that on multiple plots. You'd either have to do this each time you want to create an inset:\r\n\r\n```python\r\n(img1 * img2).inset(index=1, **inset_kwargs)\r\n```\r\nwhich declares the second Image as the inset via an index or it's path name or more explicitly do this:\r\n```python\r\nOverlay([img]).inset(img2, **inset_kwargs)\r\n```\r\nwhich seems even more awkward to me. I therefore still think doing it via the plot options is the clearest and cleanest solution, as it would look something like this:\r\n```python\r\nimg * img2(plot={'inset': inset_kwargs})\r\n```\r\nSounds like we'll have to discuss it more in person to come to a conclusion though."}}