Thomas Lecocq
Geologist
Ph.D.Student (Seismology)
Royal Observatory of Belgium
Date: Wed, 9 Feb 2011 11:53:17 +0100
From: neurino@…287…
To: matplotlib-users@lists.sourceforge.net
Subject: [Matplotlib-users] Best way to set scales bounds to appropriate values
Hi, I’m a matplotlib newbie.
An example is worth a thousand words:
In [1]: matplotlib.version
Out[1]: ‘0.99.3’
In [2]: a, b, x = np.zeros(10), np.ones(10), np.arange(10)
In [3]: plot(x, a); plot(x, b)
Well all I see is an empty plot with the two horizontal lines at y=0 and y=1 covered by the upper and lower frame lines.
Why aren’t bounds set a little more larger so the two lines can show properly???
I guess this is a common situation, for example 2 or more stable temperatures: the higher and the lower never show…
How can I fix it?
Thanks for your support.
------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel® Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-users
I wonder why matplotlib takes care of settings limits on data but fails in a common situation so I’m forced to override it every time because I don’t know in advance what data I get…
Thanks anyway.
Cheers
neurino
2011/2/9 Thomas Lecocq <thlecocq@…1954…>
···
This will do :
pyplot.xlim(-5,15)
pyplot.ylim(-5,5)
HTH.
Thomas
Thomas Lecocq
Geologist
Ph.D.Student (Seismology)
Royal Observatory of Belgium
Date: Wed, 9 Feb 2011 11:53:17 +0100
From: neurino@…287…
To: matplotlib-users@…1220…sts.sourceforge.net
Subject: [Matplotlib-users] Best way to set scales bounds to appropriate values
Hi, I’m a matplotlib newbie.
An example is worth a thousand words:
In [1]: matplotlib.version
Out[1]: ‘0.99.3’
In [2]: a, b, x = np.zeros(10), np.ones(10), np.arange(10)
In [3]: plot(x, a); plot(x, b)
Well all I see is an empty plot with the two horizontal lines at y=0 and y=1 covered by the upper and lower frame lines.
Why aren’t bounds set a little more larger so the two lines can show properly???
I guess this is a common situation, for example 2 or more stable temperatures: the higher and the lower never show…
How can I fix it?
Thanks for your support.
------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb
1° there must be a parameter in the default behaviour of the subplot to control taht
2° you can always set xlim( min(X)/2, max(X)/2 ) …
Thomas
···
Thomas Lecocq
Geologist
Ph.D.Student (Seismology)
Royal Observatory of Belgium
Date: Wed, 9 Feb 2011 13:47:01 +0100
Subject: Re: [Matplotlib-users] Best way to set scales bounds to appropriate values
From: neurino@…287…
To: thlecocq@…1954…
CC: matplotlib-users@lists.sourceforge.net
Well, not that automatic…
I wonder why matplotlib takes care of settings limits on data but fails in a common situation so I’m forced to override it every time because I don’t know in advance what data I get…
Thanks anyway.
Cheers
neurino
2011/2/9 Thomas Lecocq <thlecocq@…1954…>
This will do :
pyplot.xlim(-5,15)
pyplot.ylim(-5,5)
HTH.
Thomas
Thomas Lecocq
Geologist
Ph.D.Student (Seismology)
Royal Observatory of Belgium
Date: Wed, 9 Feb 2011 11:53:17 +0100
From: neurino@…287…
To: matplotlib-users@lists.sourceforge.net
Subject: [Matplotlib-users] Best way to set scales bounds to appropriate values
Hi, I’m a matplotlib newbie.
An example is worth a thousand words:
In [1]: matplotlib.version
Out[1]: ‘0.99.3’
In [2]: a, b, x = np.zeros(10), np.ones(10), np.arange(10)
In [3]: plot(x, a); plot(x, b)
Well all I see is an empty plot with the two horizontal lines at y=0 and y=1 covered by the upper and lower frame lines.
Why aren’t bounds set a little more larger so the two lines can show properly???
I guess this is a common situation, for example 2 or more stable temperatures: the higher and the lower never show…
How can I fix it?
Thanks for your support.
------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@…563…eforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
I did a little digging and I discovered a function I never noticed before… You can set a “margin” for an axis that can be used for autoscaling purposes.
set_ymargin(self, m) method of matplotlib.axes.AxesSubplot instance
Set padding of Y data limits prior to autoscaling.
*m* times the data interval will be added to each
end of that interval before it is used in autoscaling.
accepts: float in range 0 to 1
So, in your code, if I set ymargin to 0.5, then the limits will automatically be -0.5 to 1.5.
I think this is what you are looking for.
Ben Root
···
On Wed, Feb 9, 2011 at 6:47 AM, neurino <neurino@…287…> wrote:
Well, not that automatic…
I wonder why matplotlib takes care of settings limits on data but fails in a common situation so I’m forced to override it every time because I don’t know in advance what data I get…
Unluckily matplotlib documentation is rather a jungle, just the lack of a methods/properties index for each class makes very hard to find what one’s looking for.
Thanks again.
Greetings
neurino
2011/2/9 Benjamin Root <ben.root@…1304…>
···
On Wed, Feb 9, 2011 at 6:47 AM, neurino <neurino@…287…> wrote:
Well, not that automatic…
I wonder why matplotlib takes care of settings limits on data but fails in a common situation so I’m forced to override it every time because I don’t know in advance what data I get…
Thanks anyway.
Cheers
neurino
I did a little digging and I discovered a function I never noticed before… You can set a “margin” for an axis that can be used for autoscaling purposes.
set_ymargin(self, m) method of matplotlib.axes.AxesSubplot instance
Set padding of Y data limits prior to autoscaling.
*m* times the data interval will be added to each
end of that interval before it is used in autoscaling.
accepts: float in range 0 to 1
So, in your code, if I set ymargin to 0.5, then the limits will automatically be -0.5 to 1.5.