SourceForge logo
SourceForge logo
Menu

matplotlib-checkins — Commit notification. DO NOT POST to this list, just subscribe to it.

You can subscribe to this list here.

2007 Jan
Feb
Mar
Apr
May
Jun
Jul
(115)
Aug
(120)
Sep
(137)
Oct
(170)
Nov
(461)
Dec
(263)
2008 Jan
(120)
Feb
(74)
Mar
(35)
Apr
(74)
May
(245)
Jun
(356)
Jul
(240)
Aug
(115)
Sep
(78)
Oct
(225)
Nov
(98)
Dec
(271)
2009 Jan
(132)
Feb
(84)
Mar
(74)
Apr
(56)
May
(90)
Jun
(79)
Jul
(83)
Aug
(296)
Sep
(214)
Oct
(76)
Nov
(82)
Dec
(66)
2010 Jan
(46)
Feb
(58)
Mar
(51)
Apr
(77)
May
(58)
Jun
(126)
Jul
(128)
Aug
(64)
Sep
(50)
Oct
(44)
Nov
(48)
Dec
(54)
2011 Jan
(68)
Feb
(52)
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
(1)
2018 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S


1
(10)
2
(6)
3
4
(10)
5
(5)
6
(5)
7
(6)
8
(2)
9
(5)
10
(7)
11
(5)
12
(8)
13
(5)
14
(7)
15
(3)
16
(1)
17
(1)
18
19
(1)
20
(6)
21
(6)
22
(3)
23
(3)
24
(7)
25
26
(5)
27
(1)
28
(3)
29
(2)
30
(3)



Showing 3 results of 3

From: <ef...@us...> - 2010年06月30日 21:14:40
Revision: 8480
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8480&view=rev
Author: efiring
Date: 2010年06月30日 21:14:31 +0000 (2010年6月30日)
Log Message:
-----------
doc changes for last commit
Modified Paths:
--------------
 trunk/matplotlib/CHANGELOG
 trunk/matplotlib/doc/api/api_changes.rst
Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG	2010年06月30日 21:07:36 UTC (rev 8479)
+++ trunk/matplotlib/CHANGELOG	2010年06月30日 21:14:31 UTC (rev 8480)
@@ -1,3 +1,11 @@
+2010年06月30日 Added autoscale convenience method and corresponding
+ pyplot function for simplified control of autoscaling;
+ and changed axis, set_xlim, and set_ylim so that by
+ default, they turn off the autoscaling on the relevent
+ axis or axes. Therefore one can call set_xlim before
+ plotting a line, for example, and the limits will be
+ retained. - EF
+
 2010年06月20日 Added Axes.tick_params and corresponding pyplot function
 to control tick and tick label appearance after an Axes
 has been created. - EF
Modified: trunk/matplotlib/doc/api/api_changes.rst
===================================================================
--- trunk/matplotlib/doc/api/api_changes.rst	2010年06月30日 21:07:36 UTC (rev 8479)
+++ trunk/matplotlib/doc/api/api_changes.rst	2010年06月30日 21:14:31 UTC (rev 8480)
@@ -10,11 +10,22 @@
 Changes beyond 0.99.x
 =====================
 
-* There are four new Axes methods with corresponding pyplot
+* The default behavior of :meth:`matplotlib.axes.Axes.set_xlim`,
+ :meth:`matplotlib.axes.Axes.set_ylim`, and
+ :meth:`matplotlib.axes.Axes.axis`, and their corresponding
+ pyplot functions, has been changed: when view limits are
+ set explicitly with one of these methods, autoscaling is turned
+ off for the matching axis. A new *auto* kwarg is available to
+ control this behavior.
+
+* There are five new Axes methods with corresponding pyplot
 functions to facilitate autoscaling, tick location, and tick
 label formatting, and the general appearance of ticks and
 tick labels:
 
+ + :meth:`matplotlib.axes.Axes.autoscale` turns autoscaling
+ on or off, and applies it.
+
 + :meth:`matplotlib.axes.Axes.margins` sets margins used to
 autoscale the :attr:`matplotlib.axes.Axes.viewLim` based on
 the :attr:`matplotlib.axes.Axes.dataLim`.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <ef...@us...> - 2010年06月30日 21:07:43
Revision: 8479
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8479&view=rev
Author: efiring
Date: 2010年06月30日 21:07:36 +0000 (2010年6月30日)
Log Message:
-----------
set_xlim, set_ylim: turn off autoscaling; added autoscale method
Modified Paths:
--------------
 trunk/matplotlib/boilerplate.py
 trunk/matplotlib/lib/matplotlib/axes.py
 trunk/matplotlib/lib/matplotlib/blocking_input.py
 trunk/matplotlib/lib/matplotlib/image.py
 trunk/matplotlib/lib/matplotlib/projections/polar.py
 trunk/matplotlib/lib/matplotlib/pylab.py
 trunk/matplotlib/lib/matplotlib/pyplot.py
 trunk/matplotlib/lib/matplotlib/tests/test_dates.py
 trunk/matplotlib/lib/matplotlib/widgets.py
 trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
Modified: trunk/matplotlib/boilerplate.py
===================================================================
--- trunk/matplotlib/boilerplate.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/boilerplate.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -109,6 +109,7 @@
 'locator_params',
 'tick_params',
 'margins',
+ 'autoscale',
 )
 
 cmappable = {
Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/axes.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -1715,7 +1715,46 @@
 """
 return self._rasterization_zorder
 
+ def autoscale(self, enable=True, axis='both', tight=None):
+ """
+ Convenience method for simple axis view autoscaling.
+ It turns autoscaling on or off, and then,
+ if autoscaling for either axis is on, it performs
+ the autoscaling on the specified axis or axes.
 
+ *enable*: [True | False | None]
+ True (default) turns autoscaling on, False turns it off.
+ None leaves the autoscaling state unchanged.
+
+ *axis*: ['x' | 'y' | 'both']
+ which axis to operate on; default is 'both'
+
+ *tight*: [True | False | None]
+ If True, set view limits to data limits;
+ if False, let the locator and margins expand the view limits;
+ if None, use tight scaling if the only artist is an image,
+ otherwise treat *tight* as False.
+ The *tight* setting is retained for future autoscaling
+ until it is explicitly changed.
+
+
+ Returns None.
+ """
+ if enable is None:
+ scalex = True
+ scaley = True
+ else:
+ scalex = False
+ scaley = False
+ if axis in ['x', 'both']:
+ self._autoscaleXon = bool(enable)
+ scalex = self._autoscaleXon
+ if axis in ['y', 'both']:
+ self._autoscaleYon = bool(enable)
+ scaley = self._autoscaleYon
+ self.autoscale_view(tight=tight, scalex=scalex, scaley=scaley)
+
+
 def autoscale_view(self, tight=None, scalex=True, scaley=True):
 """
 autoscale the view limits using the data limits. You can
@@ -2209,7 +2248,7 @@
 def invert_xaxis(self):
 "Invert the x-axis."
 left, right = self.get_xlim()
- self.set_xlim(right, left)
+ self.viewLim.intervalx = (right, left)
 
 def xaxis_inverted(self):
 'Returns True if the x-axis is inverted.'
@@ -2233,6 +2272,7 @@
 """
 Set the lower and upper numerical bounds of the x-axis.
 This method will honor axes inversion regardless of parameter order.
+ It will not change the _autoscaleXon attribute.
 """
 if upper is None and iterable(lower):
 lower,upper = lower
@@ -2244,14 +2284,14 @@
 
 if self.xaxis_inverted():
 if lower < upper:
- self.set_xlim(upper, lower)
+ self.set_xlim(upper, lower, auto=None)
 else:
- self.set_xlim(lower, upper)
+ self.set_xlim(lower, upper, auto=None)
 else:
 if lower < upper:
- self.set_xlim(lower, upper)
+ self.set_xlim(lower, upper, auto=None)
 else:
- self.set_xlim(upper, lower)
+ self.set_xlim(upper, lower, auto=None)
 
 def get_xlim(self):
 """
@@ -2259,32 +2299,45 @@
 """
 return tuple(self.viewLim.intervalx)
 
- def set_xlim(self, xmin=None, xmax=None, emit=True, **kwargs):
+ def set_xlim(self, xmin=None, xmax=None, emit=True, auto=False):
 """
 call signature::
 
- set_xlim(self, *args, **kwargs)
+ set_xlim(self, *args, **kwargs):
 
- Set the limits for the xaxis
+ Set the data limits for the xaxis
 
- Returns the current xlimits as a length 2 tuple: [*xmin*, *xmax*]
-
 Examples::
 
- set_xlim((valmin, valmax))
- set_xlim(valmin, valmax)
- set_xlim(xmin=1) # xmax unchanged
- set_xlim(xmax=1) # xmin unchanged
+ set_xlim((left, right))
+ set_xlim(left, right)
+ set_xlim(xmin=1) # right unchanged
+ set_xlim(xmax=1) # left unchanged
 
 Keyword arguments:
 
 *xmin*: scalar
- the min of the ylim
+ the left xlim
 *xmax*: scalar
- the max of the ylim
+ the right xlim
 *emit*: [ True | False ]
 notify observers of lim change
+ *auto*: [ True | False | None ]
+ turn *x* autoscaling on (True), off (False; default),
+ or leave unchanged (None)
 
+ Note: the kwarg terminology may be confusing. The first value,
+ *xmin*, is the left, and the second, *xmax*, is the right.
+ For example, suppose *x* is years before present.
+ Then one might use::
+
+ set_ylim(5000, 0)
+
+ so 5000 years ago is on the left of the plot and the
+ present is on the right.
+
+ Returns the current xlimits as a length 2 tuple
+
 ACCEPTS: len(2) sequence of floats
 """
 if xmax is None and iterable(xmin):
@@ -2307,6 +2360,8 @@
 xmin, xmax = self.xaxis.limit_range_for_scale(xmin, xmax)
 
 self.viewLim.intervalx = (xmin, xmax)
+ if auto is not None:
+ self._autoscaleXon = bool(auto)
 
 if emit:
 self.callbacks.process('xlim_changed', self)
@@ -2391,25 +2446,26 @@
 
 def invert_yaxis(self):
 "Invert the y-axis."
- left, right = self.get_ylim()
- self.set_ylim(right, left)
+ bottom, top = self.get_ylim()
+ self.viewLim.intervaly = (top, bottom)
 
 def yaxis_inverted(self):
 'Returns True if the y-axis is inverted.'
- left, right = self.get_ylim()
- return right < left
+ bottom, top = self.get_ylim()
+ return top < bottom
 
 def get_ybound(self):
 "Return y-axis numerical bounds in the form of lowerBound < upperBound"
- left, right = self.get_ylim()
- if left < right:
- return left, right
+ bottom, top = self.get_ylim()
+ if bottom < top:
+ return bottom, top
 else:
- return right, left
+ return top, bottom
 
 def set_ybound(self, lower=None, upper=None):
 """Set the lower and upper numerical bounds of the y-axis.
 This method will honor axes inversion regardless of parameter order.
+ It will not change the _autoscaleYon attribute.
 """
 if upper is None and iterable(lower):
 lower,upper = lower
@@ -2421,14 +2477,14 @@
 
 if self.yaxis_inverted():
 if lower < upper:
- self.set_ylim(upper, lower)
+ self.set_ylim(upper, lower, auto=None)
 else:
- self.set_ylim(lower, upper)
+ self.set_ylim(lower, upper, auto=None)
 else:
 if lower < upper:
- self.set_ylim(lower, upper)
+ self.set_ylim(lower, upper, auto=None)
 else:
- self.set_ylim(upper, lower)
+ self.set_ylim(upper, lower, auto=None)
 
 def get_ylim(self):
 """
@@ -2436,28 +2492,43 @@
 """
 return tuple(self.viewLim.intervaly)
 
- def set_ylim(self, ymin=None, ymax=None, emit=True, **kwargs):
+ def set_ylim(self, ymin=None, ymax=None, emit=True, auto=False):
 """
 call signature::
 
 set_ylim(self, *args, **kwargs):
 
- Set the limits for the yaxis; v = [ymin, ymax]::
+ Set the data limits for the yaxis
 
- set_ylim((valmin, valmax))
- set_ylim(valmin, valmax)
- set_ylim(ymin=1) # ymax unchanged
- set_ylim(ymax=1) # ymin unchanged
+ Examples::
 
+ set_ylim((bottom, top))
+ set_ylim(bottom, top)
+ set_ylim(ymin=1) # top unchanged
+ set_ylim(ymax=1) # bottom unchanged
+
 Keyword arguments:
 
 *ymin*: scalar
- the min of the ylim
+ the bottom ylim
 *ymax*: scalar
- the max of the ylim
+ the top ylim
 *emit*: [ True | False ]
 notify observers of lim change
+ *auto*: [ True | False | None ]
+ turn *y* autoscaling on (True), off (False; default),
+ or leave unchanged (None)
 
+ Note: the kwarg terminology may be confusing. The first value,
+ *ymin*, is the bottom, and the second, *ymax*, is the top.
+ For example, suppose *y* is depth in the ocean.
+ Then one might use::
+
+ set_ylim(5000, 0)
+
+ so 5000 m depth is at the bottom of the plot and the
+ surface, 0 m, is at the top.
+
 Returns the current ylimits as a length 2 tuple
 
 ACCEPTS: len(2) sequence of floats
@@ -2480,7 +2551,10 @@
 
 ymin, ymax = mtransforms.nonsingular(ymin, ymax, increasing=False)
 ymin, ymax = self.yaxis.limit_range_for_scale(ymin, ymax)
+
 self.viewLim.intervaly = (ymin, ymax)
+ if auto is not None:
+ self._autoscaleYon = bool(auto)
 
 if emit:
 self.callbacks.process('ylim_changed', self)
@@ -6647,14 +6721,10 @@
 im.autoscale_None()
 im.set_url(url)
 
- xmin, xmax, ymin, ymax = im.get_extent()
+ # update ax.dataLim, and, if autoscaling, set viewLim
+ # to tightly fit the image, regardless of dataLim.
+ im.set_extent(im.get_extent())
 
- corners = (xmin, ymin), (xmax, ymax)
- self.update_datalim(corners)
- if self._autoscaleXon:
- self.set_xlim((xmin, xmax))
- if self._autoscaleYon:
- self.set_ylim((ymin, ymax))
 self.images.append(im)
 im._remove_method = lambda h: self.images.remove(h)
 
Modified: trunk/matplotlib/lib/matplotlib/blocking_input.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/blocking_input.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/blocking_input.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -19,6 +19,7 @@
 
 from matplotlib import path, verbose
 from matplotlib.cbook import is_sequence_of_strings
+import matplotlib.lines as mlines
 
 class BlockingInput(object):
 """
@@ -222,18 +223,10 @@
 
 # If desired plot up click
 if self.show_clicks:
-
- # make sure we don't mess with the axes zoom
- xlim = event.inaxes.get_xlim()
- ylim = event.inaxes.get_ylim()
-
- # plot the clicks
- self.marks.extend(
- event.inaxes.plot([event.xdata,], [event.ydata,], 'r+') )
-
- # before we draw, make sure to reset the limits
- event.inaxes.set_xlim(xlim)
- event.inaxes.set_ylim(ylim)
+ line = mlines.Line2D([event.xdata], [event.ydata],
+ marker='+', color='r')
+ event.inaxes.add_line(line)
+ self.marks.append(line)
 self.fig.canvas.draw()
 
 
@@ -247,16 +240,9 @@
 
 if self.show_clicks:
 
- # make sure we don't mess with the axes zoom
- xlim = event.inaxes.get_xlim()
- ylim = event.inaxes.get_ylim()
-
 mark = self.marks.pop(index)
 mark.remove()
 
- # before we draw, make sure to reset the limits
- event.inaxes.set_xlim(xlim)
- event.inaxes.set_ylim(ylim)
 self.fig.canvas.draw()
 # NOTE: I do NOT understand why the above 3 lines does not work
 # for the keyboard backspace event on windows XP wxAgg.
@@ -275,20 +261,11 @@
 def cleanup(self,event=None):
 # clean the figure
 if self.show_clicks:
- if event:
- # make sure we don't mess with the axes zoom
- xlim = event.inaxes.get_xlim()
- ylim = event.inaxes.get_ylim()
 
 for mark in self.marks:
 mark.remove()
 self.marks = []
 
- if event:
- # before we draw, make sure to reset the limits
- event.inaxes.set_xlim(xlim)
- event.inaxes.set_ylim(ylim)
-
 self.fig.canvas.draw()
 
 # Call base class to remove callbacks
Modified: trunk/matplotlib/lib/matplotlib/image.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/image.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/image.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -605,6 +605,12 @@
 def set_extent(self, extent):
 """
 extent is data axes (left, right, bottom, top) for making image plots
+
+ This updates ax.dataLim, and, if autoscaling, sets viewLim
+ to tightly fit the image, regardless of dataLim. Autoscaling
+ state is not changed, so following this with ax.autoscale_view
+ will redo the autoscaling in accord with dataLim.
+
 """
 self._extent = extent
 
@@ -612,9 +618,9 @@
 corners = (xmin, ymin), (xmax, ymax)
 self.axes.update_datalim(corners)
 if self.axes._autoscaleXon:
- self.axes.set_xlim((xmin, xmax))
+ self.axes.set_xlim((xmin, xmax), auto=None)
 if self.axes._autoscaleYon:
- self.axes.set_ylim((ymin, ymax))
+ self.axes.set_ylim((ymin, ymax), auto=None)
 
 def get_extent(self):
 'get the image extent: left, right, bottom, top'
Modified: trunk/matplotlib/lib/matplotlib/projections/polar.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/projections/polar.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/projections/polar.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -336,12 +336,13 @@
 def get_rmin(self):
 return self.viewLim.ymin
 
- def set_rlim(self, rmin=None, rmax=None):
- self.viewLim.y0 = rmin
- self.viewLim.y1 = rmax
+ def set_rlim(self, *args, **kwargs):
+ if 'rmin' in kwargs:
+ kwargs['ymin'] = kwargs.pop('rmin')
+ if 'rmax' in kwargs:
+ kwargs['ymax'] = kwargs.pop('rmax')
+ return self.set_ylim(*args, **kwargs)
 
- set_ylim = set_rlim
-
 def set_yscale(self, *args, **kwargs):
 Axes.set_yscale(self, *args, **kwargs)
 self.yaxis.set_major_locator(
Modified: trunk/matplotlib/lib/matplotlib/pylab.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pylab.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/pylab.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -17,6 +17,7 @@
 axhspan - draw a horizontal bar across axes
 axvspan - draw a vertical bar across axes
 axis - Set or return the current axis limits
+ autoscale - turn axis autoscaling on or off, and apply it
 bar - make a bar chart
 barh - a horizontal bar chart
 broken_barh - a set of horizontal bars with gaps
Modified: trunk/matplotlib/lib/matplotlib/pyplot.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/pyplot.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/pyplot.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -2132,7 +2132,7 @@
 # This function was autogenerated by boilerplate.py. Do not edit as
 # changes will be lost
 @autogen_docstring(Axes.hexbin)
-def hexbin(x, y, C=None, gridsize=100, bins=None, xscale='linear', yscale='linear', extent=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=1.0, linewidths=None, edgecolors='none', reduce_C_function=np.mean, mincnt=None, marginals=False, hold=None, **kwargs):
+def hexbin(x, y, C=None, gridsize=100, bins=None, xscale='linear', yscale='linear', extent=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors='none', reduce_C_function=np.mean, mincnt=None, marginals=False, hold=None, **kwargs):
 ax = gca()
 # allow callers to override the hold state by passing hold=True|False
 washold = ax.ishold()
@@ -2186,7 +2186,7 @@
 # This function was autogenerated by boilerplate.py. Do not edit as
 # changes will be lost
 @autogen_docstring(Axes.imshow)
-def imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=1.0, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, hold=None, **kwargs):
+def imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, hold=None, **kwargs):
 ax = gca()
 # allow callers to override the hold state by passing hold=True|False
 washold = ax.ishold()
@@ -2366,7 +2366,7 @@
 # This function was autogenerated by boilerplate.py. Do not edit as
 # changes will be lost
 @autogen_docstring(Axes.scatter)
-def scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=1.0, linewidths=None, faceted=True, verts=None, hold=None, **kwargs):
+def scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, faceted=True, verts=None, hold=None, **kwargs):
 ax = gca()
 # allow callers to override the hold state by passing hold=True|False
 washold = ax.ishold()
@@ -2608,8 +2608,8 @@
 # This function was autogenerated by boilerplate.py. Do not edit as
 # changes will be lost
 @docstring.copy_dedent(Axes.grid)
-def grid(b=None, **kwargs):
- ret = gca().grid(b, **kwargs)
+def grid(b=None, which='major', **kwargs):
+ ret = gca().grid(b, which, **kwargs)
 draw_if_interactive()
 return ret
 
@@ -2679,6 +2679,14 @@
 
 # This function was autogenerated by boilerplate.py. Do not edit as
 # changes will be lost
+...@do...py_dedent(Axes.autoscale)
+def autoscale(enable=True, axis='both', tight=None):
+ ret = gca().autoscale(enable, axis, tight)
+ draw_if_interactive()
+ return ret
+
+# This function was autogenerated by boilerplate.py. Do not edit as
+# changes will be lost
 def autumn():
 '''
 set the default colormap to autumn and apply to current image if any.
@@ -2902,4 +2910,3 @@
 draw_if_interactive()
 
 
-
Modified: trunk/matplotlib/lib/matplotlib/tests/test_dates.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/tests/test_dates.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/tests/test_dates.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -77,7 +77,7 @@
 tf = datetime.datetime(2000, 1, 20)
 fig = plt.figure()
 ax = fig.add_subplot(1,1,1)
- ax.set_xlim((t0,tf))
+ ax.set_xlim((t0,tf), auto=True)
 ax.plot([],[])
 from matplotlib.dates import DayLocator, DateFormatter, HourLocator
 ax.xaxis.set_major_locator(DayLocator())
Modified: trunk/matplotlib/lib/matplotlib/widgets.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/widgets.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/matplotlib/widgets.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -131,7 +131,7 @@
 event.canvas.release_mouse(self.ax)
 if not self.eventson:
 return
- if event.inaxes != self.ax: 
+ if event.inaxes != self.ax:
 return
 for cid, func in self.observers.items():
 func(event)
@@ -253,10 +253,10 @@
 self.drag_active = True
 event.canvas.grab_mouse(self.ax)
 
- if not self.drag_active: 
+ if not self.drag_active:
 return
- 
- elif ((event.name == 'button_release_event') 
+
+ elif ((event.name == 'button_release_event')
 or (event.name == 'button_press_event' and event.inaxes != self.ax)):
 self.drag_active = False
 event.canvas.release_mouse(self.ax)
@@ -1134,7 +1134,7 @@
 self.validButtons = button
 elif isinstance(button, int):
 self.validButtons = [button]
- 
+
 assert(spancoords in ('data', 'pixels'))
 
 self.spancoords = spancoords
@@ -1165,7 +1165,7 @@
 if self.validButtons is not None:
 if not event.button in self.validButtons:
 return True
- 
+
 # If no button was pressed yet ignore the event if it was out
 # of the axes
 if self.eventpress == None:
Modified: trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py
===================================================================
--- trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2010年06月30日 16:31:23 UTC (rev 8478)
+++ trunk/matplotlib/lib/mpl_toolkits/mplot3d/axes3d.py	2010年06月30日 21:07:36 UTC (rev 8479)
@@ -93,8 +93,8 @@
 ydwl = (0.95/self.dist)
 ydw = (0.9/self.dist)
 
- Axes.set_xlim(self, -xdwl, xdw)
- Axes.set_ylim(self, -ydwl, ydw)
+ Axes.set_xlim(self, -xdwl, xdw, auto=None)
+ Axes.set_ylim(self, -ydwl, ydw, auto=None)
 
 def create_axes(self):
 self.w_xaxis = axis3d.XAxis('x', self.xy_viewLim.intervalx,
@@ -361,7 +361,7 @@
 button or buttons to use to zoom the 3D axes.
 Default = 3.
 ============ =======================================================
- 
+
 """
 self.button_pressed = None
 canv = self.figure.canvas
@@ -1083,21 +1083,21 @@
 dx, dy, dz can be arrays or scalars.
 
 *color* can be:
- 
+
 - A single color value, to color all bars the same color.
- 
+
 - An array of colors of length N bars, to color each bar
 independently.
- 
+
 - An array of colors of length 6, to color the faces of the
 bars similarly.
- 
+
 - An array of colors of length 6 * N bars, to color each face
 independently.
 
 When coloring the faces of the boxes specifically, this is
 the order of the coloring:
- 
+
 1. -Z (bottom of box)
 2. +Z (top of box)
 3. -Y
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 8478
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8478&view=rev
Author: ryanmay
Date: 2010年06月30日 16:31:23 +0000 (2010年6月30日)
Log Message:
-----------
Force timer interval to int. This silences an exception for Tk and a warning from GTK when a float is given.
Modified Paths:
--------------
 trunk/matplotlib/lib/matplotlib/backend_bases.py
Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backend_bases.py	2010年06月29日 21:44:19 UTC (rev 8477)
+++ trunk/matplotlib/lib/matplotlib/backend_bases.py	2010年06月30日 16:31:23 UTC (rev 8478)
@@ -944,6 +944,9 @@
 return self._interval
 
 def _set_interval(self, interval):
+ # Force to int since none of the backends actually support fractional
+ # milliseconds, and some error or give warnings.
+ interval = int(interval)
 self._interval = interval
 self._timer_set_interval()
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

Showing 3 results of 3

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /