see

http://www.mail-archive.com/matplotlib-users@lists.sourceforge.net/msg15919.html

axes_grid toolkit provides some helper function that utilizes
axes_locator (take a look at  demo_locatable_axes_easy function in the
example below)

http://matplotlib.sourceforge.net/examples/axes_grid/demo_axes_divider.html

-JJ




On Thu, Mar 4, 2010 at 9:05 PM, Thomas Robitaille
<thomas.robitai...@gmail.com> wrote:
> Hi,
>
> I am trying to set up a colorbar that automatically resizes if I zoom in to 
> an image (which changes the aspect ratio of the axes, so I want the colorbar 
> to get resized too). Let's say I have two Axes instances, say ax (for the 
> main image) and cax (for the colorbar). I can set up a callback if the view 
> limits in one axes change, for example
>
> ax.callbacks.connect('xlim_changed', update_colorbar)
> ax.callbacks.connect('ylim_changed', update_colorbar)
>
> Now I can store a reference to cax inside ax:
>
> ax._cax = cax
>
> And I can now define update_colorbar so that it basically changes the 
> position of cax:
>
> def update_colorbar(ax):
>
>    # Get current position
>    xmin = ax..get_position().xmin
>    ...
>
>    # Compute new colorbar position
>    ...
>
>    # Set new position
>    ax._cax.set_position(...)
>
>    # Return axes instance
>    return ax
>
> Now the issue is that if I select a region of the image to zoom into, then as 
> soon as I've selected the region, update_colorbar gets called, but by then, 
> the aspect ratio of ax hasn't changed, and so the position I find when I do 
> xmin = ax..get_position().xmin in update_colorbar is the *old* position of 
> ax, not the new one. So the colorbar position is always one step behind 
> compared to the main image axes.
>
> Can anyone think of any way that would avoid this issue, and to be able to 
> use the *new* position of ax inside update_colorbar?
>
> Thanks in advance for any help,
>
> Thomas
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to