|
From: <ef...@us...> - 2010-07-14 17:37:16
|
Revision: 8549
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8549&view=rev
Author: efiring
Date: 2010-07-14 17:37:10 +0000 (Wed, 14 Jul 2010)
Log Message:
-----------
Axes.margin: bugfix--return correct values. Thanks to Georges Schutz.
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2010-07-14 13:51:15 UTC (rev 8548)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2010-07-14 17:37:10 UTC (rev 8549)
@@ -1684,7 +1684,7 @@
"""
if not args and not kw:
- return self._ymargin, self._ymargin
+ return self._xmargin, self._ymargin
tight = kw.pop('tight', True)
mx = kw.pop('x', None)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2010-07-28 18:48:20
|
Revision: 8588
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8588&view=rev
Author: mdboom
Date: 2010-07-28 18:48:14 +0000 (Wed, 28 Jul 2010)
Log Message:
-----------
[3032853] Hist autorange bug using log and histtype
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2010-07-28 18:37:26 UTC (rev 8587)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2010-07-28 18:48:14 UTC (rev 8588)
@@ -7699,13 +7699,15 @@
x[0::2], x[1::2] = bins, bins
+ minimum = min(bins)
+
if align == 'left' or align == 'center':
x -= 0.5*(bins[1]-bins[0])
elif align == 'right':
x += 0.5*(bins[1]-bins[0])
if log:
- y[0],y[-1] = 1e-100, 1e-100
+ y[0],y[-1] = minimum, minimum
if orientation == 'horizontal':
self.set_xscale('log')
else: # orientation == 'vertical'
@@ -7716,7 +7718,7 @@
for m, c in zip(n, color):
y[1:-1:2], y[2::2] = m, m
if log:
- y[y<1e-100]=1e-100
+ y[y<minimum]=minimum
if orientation == 'horizontal':
x,y = y,x
@@ -7729,19 +7731,19 @@
# adopted from adjust_x/ylim part of the bar method
if orientation == 'horizontal':
- xmin0 = max(_saved_bounds[0]*0.9, 1e-100)
+ xmin0 = max(_saved_bounds[0]*0.9, minimum)
xmax = self.dataLim.intervalx[1]
for m in n:
xmin = np.amin(m[m!=0]) # filter out the 0 height bins
- xmin = max(xmin*0.9, 1e-100)
+ xmin = max(xmin*0.9, minimum)
xmin = min(xmin0, xmin)
self.dataLim.intervalx = (xmin, xmax)
elif orientation == 'vertical':
- ymin0 = max(_saved_bounds[1]*0.9, 1e-100)
+ ymin0 = max(_saved_bounds[1]*0.9, minimum)
ymax = self.dataLim.intervaly[1]
for m in n:
ymin = np.amin(m[m!=0]) # filter out the 0 height bins
- ymin = max(ymin*0.9, 1e-100)
+ ymin = max(ymin*0.9, minimum)
ymin = min(ymin0, ymin)
self.dataLim.intervaly = (ymin, ymax)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wea...@us...> - 2010-07-29 21:55:58
|
Revision: 8595
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8595&view=rev
Author: weathergod
Date: 2010-07-29 21:55:52 +0000 (Thu, 29 Jul 2010)
Log Message:
-----------
Fix inconsistency with the handling of the 'weights' keyword and input data for hist().
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2010-07-29 16:22:53 UTC (rev 8594)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2010-07-29 21:55:52 UTC (rev 8595)
@@ -7551,6 +7551,8 @@
'hist now uses the rwidth to give relative width '
'and not absolute width')
+ # Massage 'x' for processing.
+ # NOTE: Be sure any changes here is also done below to 'weights'
if isinstance(x, np.ndarray) or not iterable(x[0]):
# TODO: support masked arrays;
x = np.asarray(x)
@@ -7577,8 +7579,9 @@
if len(color) != nx:
raise ValueError("color kwarg must have one color per dataset")
+ # We need to do to 'weights' what was done to 'x'
if weights is not None:
- if isinstance(weights, np.ndarray):
+ if isinstance(weights, np.ndarray) or not iterable(weights[0]) :
w = np.array(weights)
if w.ndim == 2:
w = w.T
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2010-09-05 00:38:51
|
Revision: 8679
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8679&view=rev
Author: efiring
Date: 2010-09-05 00:38:45 +0000 (Sun, 05 Sep 2010)
Log Message:
-----------
[3024007] Fix ancient bug in hist inherited from numpy, fixed in numpy 1.5
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2010-09-04 21:23:03 UTC (rev 8678)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2010-09-05 00:38:45 UTC (rev 8679)
@@ -7451,6 +7451,12 @@
pdf, bins, patches = ax.hist(...)
print np.sum(pdf * np.diff(bins))
+ .. Note:: Until numpy release 1.5, the underlying numpy
+ histogram function was incorrect with *normed*=*True*
+ if bin sizes were unequal. MPL inherited that
+ error. It is now corrected within MPL when using
+ earlier numpy versions
+
*weights*
An array of weights, of the same shape as *x*. Each value in
*x* only contributes its associated weight towards the bin
@@ -7632,7 +7638,10 @@
xmax = max(xmax, xi.max())
range = (xmin, xmax)
- hist_kwargs = dict(range=range, normed=bool(normed))
+ #hist_kwargs = dict(range=range, normed=bool(normed))
+ # We will handle the normed kwarg within mpl until we
+ # get to the point of requiring numpy >= 1.5.
+ hist_kwargs = dict(range=range)
if np.__version__ < "1.3": # version 1.1 and 1.2
hist_kwargs['new'] = True
@@ -7641,8 +7650,21 @@
# this will automatically overwrite bins,
# so that each histogram uses the same bins
m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs)
+ if normed:
+ db = np.diff(bins)
+ m = (m.astype(float) / db) / m.sum()
n.append(m)
+ if normed and db.std() > 0.01 * db.mean():
+ warnings.warn("""
+ This release fixes a normalization bug in the NumPy histogram
+ function prior to version 1.5, occuring with non-uniform
+ bin widths. The returned and plotted value is now a density:
+ n / (N * bin width),
+ where n is the bin count and N the total number of points.
+ """)
+
+
if cumulative:
slc = slice(None)
if cbook.is_numlike(cumulative) and cumulative < 0:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2010-10-03 21:04:16
|
Revision: 8724
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8724&view=rev
Author: efiring
Date: 2010-10-03 21:04:10 +0000 (Sun, 03 Oct 2010)
Log Message:
-----------
errorbar bugfix: plot everything regardless of the Axes hold state
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2010-10-03 20:45:38 UTC (rev 8723)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2010-10-03 21:04:10 UTC (rev 8724)
@@ -5065,7 +5065,7 @@
type as *xerr* and *yerr*.
All other keyword arguments are passed on to the plot command for the
- markers, For example, this code makes big red squares with
+ markers. For example, this code makes big red squares with
thick green edges::
x,y,yerr = rand(3,10)
@@ -5099,6 +5099,8 @@
self._process_unit_info(xdata=x, ydata=y, kwargs=kwargs)
if not self._hold: self.cla()
+ holdstate = self._hold
+ self._hold = True
# make sure all the args are iterable; use lists not arrays to
# preserve units
@@ -5271,6 +5273,7 @@
l.set_color(ecolor)
self.autoscale_view()
+ self._hold = holdstate
return (l0, caplines, barcols)
def boxplot(self, x, notch=0, sym='b+', vert=1, whis=1.5,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2010-10-06 23:59:21
|
Revision: 8732
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8732&view=rev
Author: efiring
Date: 2010-10-06 23:59:15 +0000 (Wed, 06 Oct 2010)
Log Message:
-----------
autoscale_view: respect tight kwarg even if only images are present.
slight modification of patch by Stan West.
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2010-10-06 16:57:16 UTC (rev 8731)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2010-10-06 23:59:15 UTC (rev 8732)
@@ -1776,12 +1776,13 @@
:meth:`matplotlib.axes.Axes.relim`
prior to calling autoscale_view.
"""
- if tight is not None:
- self._tight = bool(tight)
- # if image data only just use the datalim
- _tight = self._tight or (len(self.images)>0 and
- len(self.lines)==0 and
- len(self.patches)==0)
+ if tight is None:
+ # if image data only just use the datalim
+ _tight = self._tight or (len(self.images)>0 and
+ len(self.lines)==0 and
+ len(self.patches)==0)
+ else:
+ _tight = self._tight = bool(tight)
if scalex and self._autoscaleXon:
xshared = self._shared_x_axes.get_siblings(self)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2011-01-04 00:45:31
|
Revision: 8879
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8879&view=rev
Author: efiring
Date: 2011-01-04 00:45:25 +0000 (Tue, 04 Jan 2011)
Log Message:
-----------
apply patch by Paul Ivanov to move twinx second axis offset to the RHS
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2011-01-03 21:53:09 UTC (rev 8878)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2011-01-04 00:45:25 UTC (rev 8879)
@@ -7378,6 +7378,7 @@
frameon=False)
ax2.yaxis.tick_right()
ax2.yaxis.set_label_position('right')
+ ax2.yaxis.set_offset_position('right')
self.yaxis.tick_left()
ax2.xaxis.set_visible(False)
return ax2
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2011-01-04 20:24:18
|
Revision: 8882
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8882&view=rev
Author: efiring
Date: 2011-01-04 20:24:12 +0000 (Tue, 04 Jan 2011)
Log Message:
-----------
Bugfix: invert_xaxis and invert_yaxis now notify observers. Closes 3123226
Modified Paths:
--------------
branches/v1_0_maint/lib/matplotlib/axes.py
Modified: branches/v1_0_maint/lib/matplotlib/axes.py
===================================================================
--- branches/v1_0_maint/lib/matplotlib/axes.py 2011-01-04 14:16:36 UTC (rev 8881)
+++ branches/v1_0_maint/lib/matplotlib/axes.py 2011-01-04 20:24:12 UTC (rev 8882)
@@ -2263,7 +2263,7 @@
def invert_xaxis(self):
"Invert the x-axis."
left, right = self.get_xlim()
- self.viewLim.intervalx = (right, left)
+ self.set_xlim(right, left)
def xaxis_inverted(self):
'Returns True if the x-axis is inverted.'
@@ -2471,7 +2471,7 @@
def invert_yaxis(self):
"Invert the y-axis."
bottom, top = self.get_ylim()
- self.viewLim.intervaly = (top, bottom)
+ self.set_ylim(top, bottom)
def yaxis_inverted(self):
'Returns True if the y-axis is inverted.'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|