Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reimplemented Layout aspects handling #457

Merged
merged 4 commits into from
Feb 6, 2016
Merged

Reimplemented Layout aspects handling #457

merged 4 commits into from
Feb 6, 2016

Conversation

philippjfr
Copy link
Member

The previous PR improved aspect handling in Layouts but did not really fix it. This new implementation actually does what it's supposed to. I'd appreciate it if you could try some complex layout arrangements and then fiddling with the aspects of the individual components.

Here's some that I've tried:

%%opts Layout [aspect_weight=1.0 absolute_scaling=True] Image.A [aspect=1.5] Image.C [aspect=0.5]
np.random.seed(42)
(hv.Image(np.random.rand(25, 25), group='A') +
 hv.Image(np.random.rand(25, 25), group='B') +
 hv.Image(np.random.rand(25, 25), group='C'))

image

Here absolute scaling controls whether the plots are scaled in absolute or relative terms, i.e. in the example relative scaling means that plot A (aspect=1.5) is the width of a usual plot and everything else is scaled down relative to that and absolute scaling means plot A is actually 1.5 times wider than it would usually be.

A more complex example is this:

%%opts Layout [aspect_weight=1 sublabel_format='']
%%opts Image [aspect=1] Area.A [invert_axes=True aspect=0.4] Area.B [aspect=3]
img_a = hv.Image(np.random.rand(25, 25), group='A')
img_b = hv.Image(np.random.rand(25, 25), group='B')
img_a.hist() + hv.Area(img_b.reduce(x=np.mean), group='A') + img_b + hv.Area(img_a.reduce(x=np.mean), group='A') +\
hv.Area(img_b.reduce(y=np.mean), group='B').hist() + hv.Empty() + hv.Area(img_b.reduce(y=np.mean), group='B') + hv.Empty()

image

@philippjfr
Copy link
Member Author

Good to go I think. It's still not perfect but it's the most robust implementation I've gotten so far. Hopefully by 1.5 or 1.6 we'll have redesigned specifying and plotting layouts and won't have to rely on trying to infer a good arrangement based on the aspects of the individual plots.

@jlstevens
Copy link
Contributor

I do think this is a big improvement. No doubt we'll encounter new bugs but it does look like the behaviour is going to be a lot better on average. Merging.

jlstevens added a commit that referenced this pull request Feb 6, 2016
Reimplemented Layout aspects handling
@jlstevens jlstevens merged commit bf524a3 into master Feb 6, 2016
@jlstevens jlstevens deleted the layout_fix branch February 9, 2016 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants