There is probably a simple answer to this, but I don't see it. How can
I pad the axis limits automatically? For instance, in the below
example, the x axis limits are the data points and the y limit is
close. I want to have a function that pads the axis limit at least, by
say, 10% of the range of x past the last data point without having to
take my x values and calculate some sensible x limit. Is this
possible?

import matplotlib.pyplot as plt
fig = plt.figure()
x = [1,2,3]
y = [8125, 9754, 10855]
ax.plot(x,y,marker='D',ms=12)
plt.show()

A similar issue came up recently on the list:

http://old.nabble.com/Why-are-bars,-errorbars…-clipped-td33525497.html

I posted a snippet of code there. Ben Root also mentioned `padx` and `pady` parameters, but I was not able to find them.

Best,

-Tony

···

On Fri, Mar 30, 2012 at 2:47 PM, Skipper Seabold <jsseabold@…287…> wrote:

There is probably a simple answer to this, but I don’t see it. How can

I pad the axis limits automatically? For instance, in the below

example, the x axis limits are the data points and the y limit is

close. I want to have a function that pads the axis limit at least, by

say, 10% of the range of x past the last data point without having to

take my x values and calculate some sensible x limit. Is this

possible?

import matplotlib.pyplot as plt

fig = plt.figure()

x = [1,2,3]

y = [8125, 9754, 10855]

ax.plot(x,y,marker=‘D’,ms=12)

plt.show()

There is probably a simple answer to this, but I don't see it. How can
I pad the axis limits automatically? For instance, in the below
example, the x axis limits are the data points and the y limit is
close. I want to have a function that pads the axis limit at least, by
say, 10% of the range of x past the last data point without having to
take my x values and calculate some sensible x limit. Is this
possible?

Does the margins() function or method do what you want?

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.margins

http://matplotlib.sourceforge.net/api/axes_api.html?highlight=margins#matplotlib.axes.Axes.margins

Eric

···

On 03/30/2012 08:47 AM, Skipper Seabold wrote:

import matplotlib.pyplot as plt
fig = plt.figure()
x = [1,2,3]
y = [8125, 9754, 10855]
ax.plot(x,y,marker='D',ms=12)
plt.show()

------------------------------------------------------------------------------
This SF email is sponsosred by:
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Thanks for the tip, Eric. I’m continually surprised by all the useful stuff that’s nestled in the corners of matplotlib.

Hmm, it looks like `margins` doesn’t support log scales, though. Maybe I’ll submit a PR on this later.

Best,

-Tony

···

On Fri, Mar 30, 2012 at 4:40 PM, Eric Firing <efiring@…3888…> wrote:

On 03/30/2012 08:47 AM, Skipper Seabold wrote:

There is probably a simple answer to this, but I don’t see it. How can

I pad the axis limits automatically? For instance, in the below

example, the x axis limits are the data points and the y limit is

close. I want to have a function that pads the axis limit at least, by

say, 10% of the range of x past the last data point without having to

take my x values and calculate some sensible x limit. Is this

possible?

Does the margins() function or method do what you want?

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.margins

http://matplotlib.sourceforge.net/api/axes_api.html?highlight=margins#matplotlib.axes.Axes.margins

Eric

Indeed. Both solutions are nice. I've never noticed margins before,
even though this is a common issue for me. The documentation isn't all
the clear, what exactly to do with it, but set_xmargin and set_ymargin
cleared that up. Thanks.

Skipper

···

On Fri, Mar 30, 2012 at 5:45 PM, Tony Yu <tsyu80@...287...> wrote:

On Fri, Mar 30, 2012 at 4:40 PM, Eric Firing <efiring@...202...> wrote:

On 03/30/2012 08:47 AM, Skipper Seabold wrote:
> There is probably a simple answer to this, but I don't see it. How can
> I pad the axis limits automatically? For instance, in the below
> example, the x axis limits are the data points and the y limit is
> close. I want to have a function that pads the axis limit at least, by
> say, 10% of the range of x past the last data point without having to
> take my x values and calculate some sensible x limit. Is this
> possible?

Does the margins() function or method do what you want?

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.margins

http://matplotlib.sourceforge.net/api/axes_api.html?highlight=margins#matplotlib.axes.Axes.margins

Eric

Thanks for the tip, Eric. I'm continually surprised by all the useful stuff
that's nestled in the corners of matplotlib.