On Sunday, March 18, 2012, Tony Yu <tsy...@gmail.com> wrote:
>
>
> On Sun, Mar 18, 2012 at 9:14 AM, klo uo <klo...@gmail.com> wrote:
>>
>> On Sun, Mar 18, 2012 at 1:50 PM, Angus McMorland <amcm...@gmail.com>
wrote:
>>>
>>> For inline ipython, you want to switch to the object-oriented use of
>>> pylab. Something like this should work with xlim.
>>>
>>> a = [0.1, 0.2, 0.1]
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> ax.errorbar(arange(3), a, yerr=a-sum(a)/len(a), fmt='ro')
>>> ax.set_xlim(-.5,2.5)
>>> ax.show()
>>>
>>> I'm not aware of automatic settings for padding, but with this
>>> set_xlim, it's easy enough to roll your own using the data limits.
>>>
>>
>> OK, thanks
>>
>> It's not very elegant (assuming pylab freedom) but I take it as only way
to correct clipping example (or differently put - to use custom range for
axis)
>>
>
> You can roll out a utility function that can automatically adjust the
limits with some specified padding (i.e. the function doesn't calculate the
marker size, but you can just give it sufficient padding).
> Here's an example where you specify a padding passed on the axes size
(0.05 is 5% of axes height/width):
> #~~~~
> import numpy as np
> import matplotlib.pyplot as plt
> def pad_limits(pad_frac=0.05, ax=None):
> ax = ax if ax is not None else plt.gca()
> ax.set_xlim(_calc_limits(ax.xaxis, pad_frac))
> ax.set_ylim(_calc_limits(ax.yaxis, pad_frac))
> def _calc_limits(axis, frac):
> limits = axis.get_data_interval()
> mag = np.diff(limits)[0]
> pad = np.array([-mag*frac, mag*frac])
> return limits + pad
> a = np.array([0.1, 0.2, 0.1])
> plt.errorbar(np.arange(3), a, yerr=a-sum(a)/len(a), fmt='ro')
> pad_limits()
> plt.show()
> #~~~~
> I've put this is my personal mpl toolkit with the added ability of
handling log scales:
> https://github.com/tonysyu/mpltools/blob/master/mpltools/layout.py#L80
> Best,
> -Tony
>
Uhm, don't we already have padx and pady kwargs for various limits
functions? I know scatter and plot respects them.
Ben Root
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users