If you use the svn version of matplotlib, you may use axes_grid toolkit.
http://matplotlib.sourceforge.net/mpl_toolkits/axes_grid/users/overview.html#insetlocator
Wow - this is really amazing. Sometimes it can be a bit frustrating
when I'm working to a deadline to figure out the details of Bbox's and
such but when I find something like this it really makes it worth
while! It does exactly what I want, really easy to use and only took
about 5 lines! (It would be nice if there were some docstrings in
there though :))
However, It is possible to specify the location of the axes in
normalized axes coordinate.
http://thread.gmane.org/gmane.comp.python.matplotlib.general/16373
I'm afraid I didn't really understand how to apply this in my case...
I guess I would have to set the position and everything by hand
instead of using the zoom helper. I preferred to use the zoom helper,
but found the legend loc settings put it slightly too close to the
edge of the surrounding axes for my taste.
So after checking the docstrings for how to position legends I came up
with something that works, but it required a minor change to the
inset_locator.py to pass the bbox_to_anchor and bbox_transform (it
looks like this was intended since they have None default values):
robin-mbp-3:~ robince$ diff
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/mpl_toolkits/axes_grid/inset_locator.py
code/scipy_build/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py
288c288
< axes_locator = AnchoredZoomLocator(parent_axes, zoom=zoom,
loc=loc, bbox_to_anchor=bbox_to_anchor,bbox_transform=bbox_transform)
···
On Wed, Jul 8, 2009 at 10:57 PM, Jae-Joon Lee<lee.j.joon@...287...> wrote:
On Thu, Jul 9, 2009 at 4:02 AM, Jae-Joon Lee<lee.j.joon@...287...> wrote:
---
axes_locator = AnchoredZoomLocator(parent_axes, zoom=zoom, loc=loc)
With this minor change I get exactly what I want!
ax1ins = zoomed_inset_axes(ax1, 3,
bbox_to_anchor=(0.1,0,1,1),bbox_transform=ax1.transAxes, loc=6)
plot_trial_dists(res515[0],8,ax=ax1ins)
ax1ins.set_xlim([5, 50])
ax1ins.set_ylim([0, 0.04])
ax1ins.set_xticks()
ax1ins.set_yticks()
mark_inset(ax1, ax1ins, loc1=2, loc2=4, fc="none", ec="0.5")
thanks again, this is really terrific!
Cheers
Robin