From: <jo...@us...> - 2008-02-08 21:09:39
|
Revision: 4949 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4949&view=rev Author: jouni Date: 2008-02-08 13:09:33 -0800 (Fri, 08 Feb 2008) Log Message: ----------- Fixed minor __str__ bugs so getp(gca()) works. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/axis.py trunk/matplotlib/lib/matplotlib/patches.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-02-08 17:56:12 UTC (rev 4948) +++ trunk/matplotlib/CHANGELOG 2008-02-08 21:09:33 UTC (rev 4949) @@ -1,3 +1,5 @@ +2008-02-08 Fixed minor __str__ bugs so getp(gca()) works. - JKS + 2008-02-05 Added getters for title, xlabel, ylabel, as requested by Brandon Kieth - EF Modified: trunk/matplotlib/lib/matplotlib/axis.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axis.py 2008-02-08 17:56:12 UTC (rev 4948) +++ trunk/matplotlib/lib/matplotlib/axis.py 2008-02-08 21:09:33 UTC (rev 4949) @@ -498,8 +498,8 @@ OFFSETTEXTPAD = 3 def __str__(self): - return str(self.__class__).split('.')[-1] \ - + "(%d,%d)"%self.axes.transAxes.xy_tup((0,0)) + return self.__class__.__name__ \ + + "(%f,%f)"%tuple(self.axes.transAxes.transform_point((0,0))) def __init__(self, axes, pickradius=15): """ Modified: trunk/matplotlib/lib/matplotlib/patches.py =================================================================== --- trunk/matplotlib/lib/matplotlib/patches.py 2008-02-08 17:56:12 UTC (rev 4948) +++ trunk/matplotlib/lib/matplotlib/patches.py 2008-02-08 21:09:33 UTC (rev 4949) @@ -344,8 +344,8 @@ """ def __str__(self): - return str(self.__class__).split('.')[-1] \ - + "(%g,%g;%gx%g)" % tuple(self._bbox.bounds) + return self.__class__.__name__ \ + + "(%g,%g;%gx%g)" % (self._x, self._y, self._width, self._height) def __init__(self, xy, width, height, **kwargs): """ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jo...@us...> - 2008-02-10 15:22:00
|
Revision: 4950 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4950&view=rev Author: jouni Date: 2008-02-10 07:21:56 -0800 (Sun, 10 Feb 2008) Log Message: ----------- Fixed a problem with square roots in the pdf backend with usetex. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-02-08 21:09:33 UTC (rev 4949) +++ trunk/matplotlib/CHANGELOG 2008-02-10 15:21:56 UTC (rev 4950) @@ -1,3 +1,6 @@ +2008-02-10 Fixed a problem with square roots in the pdf backend with + usetex. - JKS + 2008-02-08 Fixed minor __str__ bugs so getp(gca()) works. - JKS 2008-02-05 Added getters for title, xlabel, ylabel, as requested Modified: trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py 2008-02-08 21:09:33 UTC (rev 4949) +++ trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py 2008-02-10 15:21:56 UTC (rev 4950) @@ -35,7 +35,7 @@ from matplotlib.ft2font import FT2Font, FIXED_WIDTH, ITALIC, LOAD_NO_SCALE, \ LOAD_NO_HINTING, KERNING_UNFITTED from matplotlib.mathtext import MathTextParser -from matplotlib.transforms import Bbox, BboxBase +from matplotlib.transforms import Affine2D, Bbox, BboxBase from matplotlib.path import Path from matplotlib import ttconv @@ -1331,14 +1331,6 @@ page = iter(dvi).next() dvi.close() - if angle == 0: # avoid rounding errors in common case - def mytrans(x1, y1): - return x+x1, y+y1 - else: - def mytrans(x1, y1, x=x, y=y, a=angle / 180.0 * pi): - return x + cos(a)*x1 - sin(a)*y1, \ - y + sin(a)*x1 + cos(a)*y1 - # Gather font information and do some setup for combining # characters into strings. oldfont, seq = None, [] @@ -1354,7 +1346,6 @@ seq += [['font', pdfname, dvifont.size]] oldfont = dvifont seq += [['text', x1, y1, [chr(glyph)], x1+width]] - seq += [('end',)] # Find consecutive text strings with constant x coordinate and # combine into a sequence of strings and kerns, or just one @@ -1374,7 +1365,10 @@ continue i += 1 - # Now do the actual output. + # Create a transform to map the dvi contents to the canvas. + mytrans = Affine2D().rotate_deg(angle).translate(x, y) + + # Output the text. self.check_gc(gc, gc._rgb) self.file.output(Op.begin_text) curx, cury, oldx, oldy = 0, 0, 0, 0 @@ -1382,7 +1376,7 @@ if elt[0] == 'font': self.file.output(elt[1], elt[2], Op.selectfont) elif elt[0] == 'text': - curx, cury = mytrans(elt[1], elt[2]) + curx, cury = mytrans.transform((elt[1], elt[2])) self._setup_textpos(curx, cury, angle, oldx, oldy) oldx, oldy = curx, cury if len(elt[3]) == 1: @@ -1390,20 +1384,20 @@ else: self.file.output(elt[3], Op.showkern) else: - assert elt[0] == 'end' + assert False self.file.output(Op.end_text) - # Finally output the boxes (used for the variable-length lines - # in square roots and the like). + # Then output the boxes (e.g. variable-length lines of square + # roots). boxgc = self.new_gc() boxgc.copy_properties(gc) boxgc.set_linewidth(0) + pathops = [Path.MOVETO, Path.LINETO, Path.LINETO, Path.LINETO, + Path.CLOSEPOLY] for x1, y1, h, w in page.boxes: - (x1, y1), (x2, y2), (x3, y3), (x4, y4) = \ - mytrans(x1, y1), mytrans(x1+w, y1), \ - mytrans(x1+w, y1+h), mytrans(x1, y1+h) - self.draw_polygon(boxgc, gc._rgb, - ((x1,y1), (x2,y2), (x3,y3), (x4,y4))) + path = Path([[x1, y1], [x1+w, y1], [x1+w, y1+h], [x1, y1+h], + [0,0]], pathops) + self.draw_path(boxgc, path, mytrans, gc._rgb) def encode_string(self, s, fonttype): if fonttype == 3: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jo...@us...> - 2008-02-11 19:46:55
|
Revision: 4952 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4952&view=rev Author: jouni Date: 2008-02-11 11:46:52 -0800 (Mon, 11 Feb 2008) Log Message: ----------- Merged revisions 4951 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r4951 | jouni | 2008-02-11 21:40:18 +0200 (Mon, 11 Feb 2008) | 1 line Update plotting() doc string to refer to getp/setp. ........ Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/pyplot.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-4946 + /branches/v0_91_maint:1-4946,4951 Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-02-11 19:40:18 UTC (rev 4951) +++ trunk/matplotlib/CHANGELOG 2008-02-11 19:46:52 UTC (rev 4952) @@ -1,3 +1,5 @@ +2008-02-11 Update plotting() doc string to refer to getp/setp. - JKS + 2008-02-10 Fixed a problem with square roots in the pdf backend with usetex. - JKS Modified: trunk/matplotlib/lib/matplotlib/pyplot.py =================================================================== --- trunk/matplotlib/lib/matplotlib/pyplot.py 2008-02-11 19:40:18 UTC (rev 4951) +++ trunk/matplotlib/lib/matplotlib/pyplot.py 2008-02-11 19:46:52 UTC (rev 4952) @@ -981,7 +981,7 @@ gca - return the current axes gcf - return the current figure gci - get the current image, or None - get - get a handle graphics property + getp - get a handle graphics property hist - make a histogram hold - set the hold state on current axes legend - add a legend to the axes @@ -997,7 +997,7 @@ rc - control the default params savefig - save the current figure scatter - make a scatter plot - set - set a handle graphics property + setp - set a handle graphics property semilogx - log x axis semilogy - log y axis show - show the figures This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-02-13 02:10:25
|
Revision: 4956 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4956&view=rev Author: jdh2358 Date: 2008-02-12 18:10:23 -0800 (Tue, 12 Feb 2008) Log Message: ----------- committed eriks span selector patch Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/widgets.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-02-13 02:09:06 UTC (rev 4955) +++ trunk/matplotlib/CHANGELOG 2008-02-13 02:10:23 UTC (rev 4956) @@ -1,3 +1,5 @@ +2008-02-12 - Applied Erik Tollerud's span selector patch - JDH + 2008-02-11 Update plotting() doc string to refer to getp/setp. - JKS 2008-02-10 Fixed a problem with square roots in the pdf backend with Modified: trunk/matplotlib/lib/matplotlib/widgets.py =================================================================== --- trunk/matplotlib/lib/matplotlib/widgets.py 2008-02-13 02:09:06 UTC (rev 4955) +++ trunk/matplotlib/lib/matplotlib/widgets.py 2008-02-13 02:10:23 UTC (rev 4956) @@ -827,16 +827,14 @@ assert direction in ['horizontal', 'vertical'], 'Must choose horizontal or vertical for direction' self.direction = direction - self.ax = ax + self.ax = None + self.canvas = None self.visible = True - self.canvas = ax.figure.canvas - self.canvas.mpl_connect('motion_notify_event', self.onmove) - self.canvas.mpl_connect('button_press_event', self.press) - self.canvas.mpl_connect('button_release_event', self.release) - self.canvas.mpl_connect('draw_event', self.update_background) + self.cids=[] self.rect = None self.background = None + self.pressv = None self.rectprops = rectprops self.onselect = onselect @@ -847,8 +845,23 @@ # Needed when dragging out of axes self.buttonDown = False self.prev = (0, 0) - - if self.direction == 'horizontal': + + self.new_axes(ax) + + + def new_axes(self,ax): + self.ax = ax + if self.canvas is not ax.figure.canvas: + for cid in self.cids: + self.canvas.mpl_disconnect(cid) + + self.canvas = ax.figure.canvas + + self.cids.append(self.canvas.mpl_connect('motion_notify_event', self.onmove)) + self.cids.append(self.canvas.mpl_connect('button_press_event', self.press)) + self.cids.append(self.canvas.mpl_connect('button_release_event', self.release)) + self.cids.append(self.canvas.mpl_connect('draw_event', self.update_background)) + if self.direction == 'horizontal': trans = blended_transform_factory(self.ax.transData, self.ax.transAxes) w,h = 0,1 else: @@ -859,9 +872,8 @@ visible=False, **self.rectprops ) - + if not self.useblit: self.ax.add_patch(self.rect) - self.pressv = None def update_background(self, event): 'force an update of the background' @@ -931,10 +943,10 @@ minv, maxv = v, self.pressv if minv>maxv: minv, maxv = maxv, minv if self.direction == 'horizontal': - self.rect.xy[0] = minv + self.rect.set_x(minv) self.rect.set_width(maxv-minv) else: - self.rect.xy[1] = minv + self.rect.set_y(minv) self.rect.set_height(maxv-minv) if self.onmove_callback is not None: @@ -1155,8 +1167,8 @@ miny, maxy = self.eventpress.ydata, y # click-y and actual mouse-y if minx>maxx: minx, maxx = maxx, minx # get them in the right order if miny>maxy: miny, maxy = maxy, miny - self.to_draw.xy[0] = minx # set lower left of box - self.to_draw.xy[1] = miny + self.to_draw.set_x(minx) # set lower left of box + self.to_draw.set_y(miny) self.to_draw.set_width(maxx-minx) # set width and height of box self.to_draw.set_height(maxy-miny) self.update() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-02-13 13:50:33
|
Revision: 4959 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4959&view=rev Author: jdh2358 Date: 2008-02-13 05:50:29 -0800 (Wed, 13 Feb 2008) Log Message: ----------- Applied Erik's right-click backend_bases fix Modified Paths: -------------- trunk/matplotlib/examples/ginput_demo.py trunk/matplotlib/examples/lasso_demo.py trunk/matplotlib/lib/matplotlib/backend_bases.py trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/examples/ginput_demo.py =================================================================== --- trunk/matplotlib/examples/ginput_demo.py 2008-02-13 08:34:53 UTC (rev 4958) +++ trunk/matplotlib/examples/ginput_demo.py 2008-02-13 13:50:29 UTC (rev 4959) @@ -2,5 +2,5 @@ t = arange(10) plot(t, sin(t)) print "Please click" -ginput(3, verbose=True) +x = ginput(3, verbose=True) show() Modified: trunk/matplotlib/examples/lasso_demo.py =================================================================== --- trunk/matplotlib/examples/lasso_demo.py 2008-02-13 08:34:53 UTC (rev 4958) +++ trunk/matplotlib/examples/lasso_demo.py 2008-02-13 13:50:29 UTC (rev 4959) @@ -37,7 +37,7 @@ facecolors = [d.color for d in data] self.xys = [(d.x, d.y) for d in data] - + fig = ax.figure self.collection = RegularPolyCollection( fig.dpi, 6, sizes=(100,), facecolors=facecolors, @@ -47,6 +47,7 @@ ax.add_collection(self.collection) self.cid = self.canvas.mpl_connect('button_press_event', self.onpress) + self.ind = None def callback(self, verts): facecolors = self.collection.get_facecolors() @@ -60,7 +61,7 @@ self.canvas.draw_idle() self.canvas.widgetlock.release(self.lasso) del self.lasso - + self.ind = ind def onpress(self, event): if self.canvas.widgetlock.locked(): return if event.inaxes is None: return @@ -68,10 +69,12 @@ # acquire a lock on the widget drawing self.canvas.widgetlock(self.lasso) -data = [Datum(*xy) for xy in rand(100, 2)] +if 0: -fig = figure() -ax = fig.add_subplot(111, xlim=(0,1), ylim=(0,1), autoscale_on=False) -lman = LassoManager(ax, data) + data = [Datum(*xy) for xy in rand(100, 2)] -show() + fig = figure() + ax = fig.add_subplot(111, xlim=(0,1), ylim=(0,1), autoscale_on=False) + lman = LassoManager(ax, data) + + show() Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-02-13 08:34:53 UTC (rev 4958) +++ trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-02-13 13:50:29 UTC (rev 4959) @@ -1556,11 +1556,11 @@ if a.get_xscale()=='log': alpha=npy.log(Xmax/Xmin)/npy.log(x1/x0) rx1=pow(Xmin/x0,alpha)*Xmin - x2=pow(Xmax/x0,alpha)*Xmin + rx2=pow(Xmax/x0,alpha)*Xmin else: alpha=(Xmax-Xmin)/(x1-x0) rx1=alpha*(Xmin-x0)+Xmin - x2=alpha*(Xmax-x0)+Xmin + rx2=alpha*(Xmax-x0)+Xmin if a.get_yscale()=='log': alpha=npy.log(Ymax/Ymin)/npy.log(y1/y0) ry1=pow(Ymin/y0,alpha)*Ymin Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-02-13 08:34:53 UTC (rev 4958) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-02-13 13:50:29 UTC (rev 4959) @@ -1943,7 +1943,13 @@ except NotImplementedError: return False else: return b +def safe_isinf(x): + 'isnan for arbitrary types' + try: b = npy.isinf(x) + except NotImplementedError: return False + else: return b + def rec_append_field(rec, name, arr, dtype=None): 'return a new record array with field name populated with data from array arr' arr = npy.asarray(arr) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-02-16 20:58:39
|
Revision: 4975 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4975&view=rev Author: jdh2358 Date: 2008-02-16 12:58:37 -0800 (Sat, 16 Feb 2008) Log Message: ----------- added rec2txt and rec_groupby Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/mlab.py Added Paths: ----------- trunk/matplotlib/examples/data/aapl.csv trunk/matplotlib/examples/rec_groupby_demo.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-02-15 16:01:52 UTC (rev 4974) +++ trunk/matplotlib/CHANGELOG 2008-02-16 20:58:37 UTC (rev 4975) @@ -1,5 +1,10 @@ -2008-02-12 - Applied Erik Tollerud's span selector patch - JDH +2008-02-16 Added some new rec array functionality to mlab + (rec_summarize, rec2txt and rec_groupby). See + examples/rec_groupby_demo.py. Thanks to Tim M for rec2txt. + +2008-02-12 Applied Erik Tollerud's span selector patch - JDH + 2008-02-11 Update plotting() doc string to refer to getp/setp. - JKS 2008-02-10 Fixed a problem with square roots in the pdf backend with Added: trunk/matplotlib/examples/data/aapl.csv =================================================================== --- trunk/matplotlib/examples/data/aapl.csv (rev 0) +++ trunk/matplotlib/examples/data/aapl.csv 2008-02-16 20:58:37 UTC (rev 4975) @@ -0,0 +1,3134 @@ +Date,Open,High,Low,Close,Volume,Adj Close +2008-02-15,126.27,127.08,124.06,124.63,32163400,124.63 +2008-02-14,129.40,130.80,127.01,127.46,34074900,127.46 +2008-02-13,126.68,129.78,125.63,129.40,34542300,129.40 +2008-02-12,130.70,131.00,123.62,124.86,43749900,124.86 +2008-02-11,128.01,129.98,127.20,129.45,42886900,129.45 +2008-02-08,122.08,125.70,121.60,125.48,48412700,125.48 +2008-02-07,119.97,124.78,117.27,121.24,74404700,121.24 +2008-02-06,130.83,131.92,121.77,122.00,56093900,122.00 +2008-02-05,130.43,134.00,128.90,129.36,40723400,129.36 +2008-02-04,134.21,135.90,131.42,131.65,32103400,131.65 +2008-02-01,136.24,136.59,132.18,133.75,36085400,133.75 +2008-01-31,129.45,136.65,129.40,135.36,48004500,135.36 +2008-01-30,131.37,135.45,130.00,132.18,44323500,132.18 +2008-01-29,131.15,132.79,129.05,131.54,39269800,131.54 +2008-01-28,128.16,133.20,126.45,130.01,52628400,130.01 +2008-01-25,138.99,139.09,129.61,130.01,55440400,130.01 +2008-01-24,139.99,140.70,132.01,135.60,71564900,135.60 +2008-01-23,136.19,140.00,126.14,139.07,120415200,139.07 +2008-01-22,148.06,159.98,146.00,155.64,86214800,155.64 +2008-01-18,161.71,165.75,159.61,161.36,61547400,161.36 +2008-01-17,161.51,165.36,158.42,160.89,62780700,160.89 +2008-01-16,165.23,169.01,156.70,159.64,79065900,159.64 +2008-01-15,177.72,179.22,164.66,169.04,83688500,169.04 +2008-01-14,177.52,179.42,175.17,178.78,39256900,178.78 +2008-01-11,176.00,177.85,170.00,172.69,43936100,172.69 +2008-01-10,177.58,181.00,175.41,178.02,52904500,178.02 +2008-01-09,171.30,179.50,168.30,179.40,64781500,179.40 +2008-01-08,180.14,182.46,170.80,171.25,54338200,171.25 +2008-01-07,181.25,183.60,170.23,177.64,73972900,177.64 +2008-01-04,191.45,193.00,178.89,180.05,51959400,180.05 +2008-01-03,195.41,197.39,192.69,194.93,30052300,194.93 +2008-01-02,199.27,200.26,192.55,194.84,38519200,194.84 +2007-12-31,199.50,200.50,197.75,198.08,19249800,198.08 +2007-12-28,200.59,201.56,196.88,199.83,24766200,199.83 +2007-12-27,198.95,202.96,197.80,198.57,28383000,198.57 +2007-12-26,199.01,200.96,196.82,198.95,25110500,198.95 +2007-12-24,195.03,199.33,194.79,198.80,17150100,198.80 +2007-12-21,190.12,193.91,189.89,193.91,35498600,193.91 +2007-12-20,185.43,187.83,183.33,187.21,27603200,187.21 +2007-12-19,182.98,184.64,180.90,183.12,29484300,183.12 +2007-12-18,186.52,187.33,178.60,182.98,43649200,182.98 +2007-12-17,190.72,192.65,182.98,184.40,36556700,184.40 +2007-12-14,190.37,193.20,189.54,190.39,24082600,190.39 +2007-12-13,190.19,192.12,187.82,191.83,30879200,191.83 +2007-12-12,193.44,194.48,185.76,190.86,43696200,190.86 +2007-12-11,194.75,196.83,187.39,188.54,39589700,188.54 +2007-12-10,193.59,195.66,192.69,194.21,25776800,194.21 +2007-12-07,190.54,194.99,188.04,194.30,38057700,194.30 +2007-12-06,186.19,190.10,186.12,189.95,32136100,189.95 +2007-12-05,182.89,186.00,182.41,185.50,31833300,185.50 +2007-12-04,177.15,180.90,176.99,179.81,27625500,179.81 +2007-12-03,181.86,184.14,177.70,178.86,34308100,178.86 +2007-11-30,187.34,187.70,179.70,182.22,42400500,182.22 +2007-11-29,179.43,185.17,179.15,184.29,37413100,184.29 +2007-11-28,176.82,180.60,175.35,180.22,41073100,180.22 +2007-11-27,175.22,175.79,170.01,174.81,47005000,174.81 +2007-11-26,173.59,177.27,172.35,172.54,46603400,172.54 +2007-11-23,172.00,172.05,169.75,171.54,16622500,171.54 +2007-11-21,165.84,172.35,164.67,168.46,43493200,168.46 +2007-11-20,165.67,171.79,163.53,168.85,55076200,168.85 +2007-11-19,166.10,168.20,162.10,163.95,41196800,163.95 +2007-11-16,165.30,167.02,159.33,166.39,49391300,166.39 +2007-11-15,166.39,169.59,160.30,164.30,53095600,164.30 +2007-11-14,177.16,177.57,163.74,166.11,51695400,166.11 +2007-11-13,160.85,170.98,153.76,169.96,62034100,169.96 +2007-11-12,165.28,167.70,150.63,153.76,63057700,153.76 +2007-11-09,171.15,175.12,165.21,165.37,54458700,165.37 +2007-11-08,186.67,186.90,167.77,175.47,67458500,175.47 +2007-11-07,190.61,192.68,186.13,186.30,35473400,186.30 +2007-11-06,187.05,192.00,185.27,191.79,34068500,191.79 +2007-11-05,185.29,188.96,184.24,186.18,28703700,186.18 +2007-11-02,189.21,189.44,183.49,187.87,35769600,187.87 +2007-11-01,188.60,190.10,180.00,187.44,28734100,187.44 +2007-10-31,187.63,190.12,184.95,189.95,29699700,189.95 +2007-10-30,186.18,189.37,184.73,187.00,33495900,187.00 +2007-10-29,185.45,186.59,184.70,185.09,19281800,185.09 +2007-10-26,185.29,185.37,182.88,184.70,25219800,184.70 +2007-10-25,184.87,185.90,181.66,182.78,34729500,182.78 +2007-10-24,185.81,187.21,179.24,185.93,45961300,185.93 +2007-10-23,188.56,188.60,182.76,186.16,64005900,186.16 +2007-10-22,170.35,174.90,169.96,174.36,56203900,174.36 +2007-10-19,174.24,174.63,170.00,170.42,46063800,170.42 +2007-10-18,171.50,174.19,171.05,173.50,29417000,173.50 +2007-10-17,172.69,173.04,169.18,172.75,39969400,172.75 +2007-10-16,165.54,170.18,165.15,169.58,38093400,169.58 +2007-10-15,167.98,169.57,163.50,166.98,38448900,166.98 +2007-10-12,163.01,167.28,161.80,167.25,35244200,167.25 +2007-10-11,169.49,171.88,153.21,162.23,58671500,162.23 +2007-10-10,167.55,167.88,165.60,166.79,23779600,166.79 +2007-10-09,170.20,171.11,166.68,167.86,39438800,167.86 +2007-10-08,163.49,167.91,162.97,167.91,29815900,167.91 +2007-10-05,158.37,161.58,157.70,161.45,33595200,161.45 +2007-10-04,158.00,158.08,153.50,156.24,23402900,156.24 +2007-10-03,157.78,159.18,157.01,157.92,24696400,157.92 +2007-10-02,156.55,158.59,155.89,158.45,28250600,158.45 +2007-10-01,154.63,157.41,152.93,156.34,29861300,156.34 +2007-09-28,153.44,154.60,152.75,153.47,21915800,153.47 +2007-09-27,153.77,154.52,152.32,154.50,23427700,154.50 +2007-09-26,154.47,155.00,151.25,152.77,34801900,152.77 +2007-09-25,146.84,153.22,146.82,153.18,42572900,153.18 +2007-09-24,146.73,149.85,146.65,148.28,37506200,148.28 +2007-09-21,141.14,144.65,140.31,144.15,40651300,144.15 +2007-09-20,140.15,141.79,139.32,140.31,24575400,140.31 +2007-09-19,143.02,143.16,139.40,140.77,36633200,140.77 +2007-09-18,139.06,142.85,137.83,140.92,37951300,140.92 +2007-09-17,138.99,140.59,137.60,138.41,28301900,138.41 +2007-09-14,136.57,138.98,136.20,138.81,21674400,138.81 +2007-09-13,138.83,139.00,136.65,137.20,23434400,137.20 +2007-09-12,135.99,139.40,135.75,136.85,36527500,136.85 +2007-09-11,137.90,138.30,133.75,135.49,34710200,135.49 +2007-09-10,136.99,138.04,133.95,136.71,53137100,136.71 +2007-09-07,132.01,132.30,130.00,131.77,51092000,131.77 +2007-09-06,135.56,137.57,132.71,135.01,67902200,135.01 +2007-09-05,144.97,145.84,136.10,136.76,83150800,136.76 +2007-09-04,139.94,145.73,139.84,144.16,47030100,144.16 +2007-08-31,139.49,139.65,137.41,138.48,31317400,138.48 +2007-08-30,132.67,138.25,132.30,136.25,51270800,136.25 +2007-08-29,129.88,134.18,129.54,134.08,41673600,134.08 +2007-08-28,130.99,132.41,126.63,126.82,42120200,126.82 +2007-08-27,133.39,134.66,132.10,132.25,25265700,132.25 +2007-08-24,130.53,135.37,129.81,135.30,32565500,135.30 +2007-08-23,133.09,133.34,129.76,131.07,30958500,131.07 +2007-08-22,131.22,132.75,130.33,132.51,37920200,132.51 +2007-08-21,122.21,128.96,121.00,127.57,46537400,127.57 +2007-08-20,123.96,124.50,120.50,122.22,28689900,122.22 +2007-08-17,122.01,123.50,119.82,122.06,42680800,122.06 +2007-08-16,117.01,118.50,111.62,117.05,66667500,117.05 +2007-08-15,122.74,124.86,119.65,119.90,35459000,119.90 +2007-08-14,128.29,128.30,123.71,124.03,26393100,124.03 +2007-08-13,128.32,129.35,126.50,127.79,26889700,127.79 +2007-08-10,123.12,127.75,120.30,125.00,50383900,125.00 +2007-08-09,131.11,133.00,125.09,126.39,40192700,126.39 +2007-08-08,136.76,136.86,132.00,134.01,28860600,134.01 +2007-08-07,134.94,137.24,132.63,135.03,33926300,135.03 +2007-08-06,132.90,135.27,128.30,135.25,33041800,135.25 +2007-08-03,135.26,135.95,131.50,131.85,24256700,131.85 +2007-08-02,136.65,136.96,134.15,136.49,30451600,136.49 +2007-08-01,133.64,135.38,127.77,135.00,62505600,135.00 +2007-07-31,142.97,143.48,131.52,131.76,62942600,131.76 +2007-07-30,144.33,145.45,139.57,141.43,39535300,141.43 +2007-07-27,146.19,148.92,143.78,143.85,41467800,143.85 +2007-07-26,145.91,148.50,136.96,146.00,78093900,146.00 +2007-07-25,137.35,138.36,135.00,137.26,53435100,137.26 +2007-07-24,138.88,141.00,134.15,134.89,64117600,134.89 +2007-07-23,143.31,145.22,140.93,143.70,37017500,143.70 +2007-07-20,141.65,144.18,140.00,143.75,41706200,143.75 +2007-07-19,140.30,140.81,139.65,140.00,26174700,140.00 +2007-07-18,138.19,138.44,136.04,138.12,27030600,138.12 +2007-07-17,138.30,139.60,137.50,138.91,25355700,138.91 +2007-07-16,138.39,139.98,137.50,138.10,33432600,138.10 +2007-07-13,135.03,137.85,134.52,137.73,32414500,137.73 +2007-07-12,133.85,134.24,132.39,134.07,25164600,134.07 +2007-07-11,132.07,133.70,131.31,132.39,29349000,132.39 +2007-07-10,128.88,134.50,128.81,132.35,44821700,132.35 +2007-07-09,132.38,132.90,129.18,130.33,35565000,130.33 +2007-07-06,133.13,133.34,130.40,132.30,31239100,132.30 +2007-07-05,128.80,132.97,128.69,132.75,51894700,132.75 +2007-07-03,122.00,127.40,121.50,127.17,41517200,127.17 +2007-07-02,121.05,122.09,119.30,121.26,35530800,121.26 +2007-06-29,121.97,124.00,121.09,122.04,40637200,122.04 +2007-06-28,122.36,122.49,120.00,120.56,29933700,120.56 +2007-06-27,120.61,122.04,119.26,121.89,34810600,121.89 +2007-06-26,123.98,124.00,118.72,119.65,48035900,119.65 +2007-06-25,124.19,125.09,121.06,122.34,34478700,122.34 +2007-06-22,123.85,124.45,122.38,123.00,22567000,123.00 +2007-06-21,121.70,124.29,120.72,123.90,30965900,123.90 +2007-06-20,123.87,124.66,121.50,121.55,32054000,121.55 +2007-06-19,124.69,125.01,122.91,123.66,33679500,123.66 +2007-06-18,123.28,125.18,122.54,125.09,32521600,125.09 +2007-06-15,120.62,120.67,119.86,120.50,28972100,120.50 +2007-06-14,117.20,119.45,116.42,118.75,34759500,118.75 +2007-06-13,121.15,121.19,115.40,117.50,61476900,117.50 +2007-06-12,119.35,121.71,118.31,120.38,50948800,120.38 +2007-06-11,126.00,126.15,119.54,120.19,66937800,120.19 +2007-06-08,125.82,125.83,122.29,124.49,44345800,124.49 +2007-06-07,124.99,127.61,123.19,124.07,68395700,124.07 +2007-06-06,122.30,124.05,121.95,123.64,39722900,123.64 +2007-06-05,121.41,122.69,120.50,122.67,32885200,122.67 +2007-06-04,118.63,121.73,117.90,121.33,31666900,121.33 +2007-06-01,121.10,121.19,118.29,118.40,31616500,118.40 +2007-05-31,120.07,122.17,119.54,121.19,46323800,121.19 +2007-05-30,114.30,118.88,113.53,118.77,52801600,118.77 +2007-05-29,114.45,114.86,112.69,114.35,23060500,114.35 +2007-05-25,112.00,113.78,111.50,113.62,22605700,113.62 +2007-05-24,112.81,114.46,110.37,110.69,31691500,110.69 +2007-05-23,114.02,115.00,112.59,112.89,32549100,112.89 +2007-05-22,112.49,113.75,112.01,113.54,20443200,113.54 +2007-05-21,110.31,112.45,110.05,111.98,22853300,111.98 +2007-05-18,110.23,110.64,109.77,110.02,22190900,110.02 +2007-05-17,107.15,109.87,107.15,109.44,26260400,109.44 +2007-05-16,108.53,108.83,103.42,107.34,40241700,107.34 +2007-05-15,109.57,110.20,106.48,107.52,34089800,107.52 +2007-05-14,109.62,110.00,108.25,109.36,23283800,109.36 +2007-05-11,107.74,109.13,106.78,108.74,23346300,108.74 +2007-05-10,106.63,108.84,105.92,107.34,42759200,107.34 +2007-05-09,104.91,106.96,104.89,106.88,25634200,106.88 +2007-05-08,103.47,105.15,103.42,105.06,27999900,105.06 +2007-05-07,101.08,104.35,101.01,103.92,30769900,103.92 +2007-05-04,100.80,101.60,100.50,100.81,13642400,100.81 +2007-05-03,100.73,101.45,100.01,100.40,20574200,100.40 +2007-05-02,99.65,100.54,99.47,100.39,18040900,100.39 +2007-05-01,99.59,100.35,98.55,99.47,19018700,99.47 +2007-04-30,100.09,101.00,99.67,99.80,22018200,99.80 +2007-04-27,98.18,99.95,97.69,99.92,24978700,99.92 +2007-04-26,101.58,102.50,98.30,98.84,62063500,98.84 +2007-04-25,94.23,95.40,93.80,95.35,42398000,95.35 +2007-04-24,93.96,96.39,91.30,93.24,37687600,93.24 +2007-04-23,91.59,93.80,91.42,93.51,27867500,93.51 +2007-04-20,90.89,91.18,90.55,90.97,18670700,90.97 +2007-04-19,90.19,91.25,89.83,90.27,15211200,90.27 +2007-04-18,90.16,90.85,89.60,90.40,16573000,90.40 +2007-04-17,92.00,92.30,89.70,90.35,26854300,90.35 +2007-04-16,90.57,91.50,90.25,91.43,21751200,91.43 +2007-04-13,90.90,91.40,90.06,90.24,25712200,90.24 +2007-04-12,92.04,92.31,90.72,92.19,23452700,92.19 +2007-04-11,93.90,93.95,92.33,92.59,19607800,92.59 +2007-04-10,93.67,94.26,93.41,94.25,12588100,94.25 +2007-04-09,95.21,95.30,93.04,93.65,14762200,93.65 +2007-04-05,94.12,94.68,93.52,94.68,12697000,94.68 +2007-04-04,94.94,95.14,94.13,94.27,17028000,94.27 +2007-04-03,94.14,95.23,93.76,94.50,20854800,94.50 +2007-04-02,94.14,94.25,93.02,93.65,17928300,93.65 +2007-03-30,94.28,94.68,92.75,92.91,21448500,92.91 +2007-03-29,94.19,94.19,92.23,93.75,25918700,93.75 +2007-03-28,94.88,95.40,93.15,93.24,33654900,93.24 +2007-03-27,95.71,96.83,95.00,95.46,33287600,95.46 +2007-03-26,93.99,95.90,93.30,95.85,30892400,95.85 +2007-03-23,93.35,94.07,93.30,93.52,16103000,93.52 +2007-03-22,93.73,94.36,93.00,93.96,20053300,93.96 +2007-03-21,91.99,94.00,91.65,93.87,24532000,93.87 +2007-03-20,91.35,91.84,91.06,91.48,17461300,91.48 +2007-03-19,90.24,91.55,89.59,91.13,25462900,91.13 +2007-03-16,89.54,89.99,89.32,89.59,20418000,89.59 +2007-03-15,89.96,90.36,89.31,89.57,19982100,89.57 +2007-03-14,88.60,90.00,87.92,90.00,28449500,90.00 +2007-03-13,89.41,90.60,88.40,88.40,30996100,88.40 +2007-03-12,88.07,89.99,87.99,89.87,26050300,89.87 +2007-03-09,88.80,88.85,87.40,87.97,16137000,87.97 +2007-03-08,88.59,88.72,87.46,88.00,18250400,88.00 +2007-03-07,88.05,88.97,87.45,87.72,22367300,87.72 +2007-03-06,87.80,88.31,87.40,88.19,25828100,88.19 +2007-03-05,85.89,88.65,85.76,86.32,29960700,86.32 +2007-03-02,86.77,87.54,85.21,85.41,30714300,85.41 +2007-03-01,84.03,88.31,83.75,87.06,50554600,87.06 +2007-02-28,83.00,85.60,83.00,84.61,32838400,84.61 +2007-02-27,86.30,87.08,83.41,83.93,40921900,83.93 +2007-02-26,89.84,90.00,87.61,88.51,21994600,88.51 +2007-02-23,89.16,90.34,88.85,89.07,18496200,89.07 +2007-02-22,90.80,90.81,88.53,89.51,29936600,89.51 +2007-02-21,85.98,89.49,85.96,89.20,41261200,89.20 +2007-02-20,84.65,86.16,84.16,85.90,22060800,85.90 +2007-02-16,85.25,85.41,84.66,84.83,14281000,84.83 +2007-02-15,85.44,85.62,84.78,85.21,12987900,85.21 +2007-02-14,84.63,85.64,84.57,85.30,18142200,85.30 +2007-02-13,85.16,85.29,84.30,84.70,20749500,84.70 +2007-02-12,84.43,85.18,83.63,84.88,25859700,84.88 +2007-02-09,85.88,86.20,83.21,83.27,30733600,83.27 +2007-02-08,85.43,86.51,85.41,86.18,24251100,86.18 +2007-02-07,84.48,86.38,83.55,86.15,38100900,86.15 +2007-02-06,84.45,84.47,82.86,84.15,30871200,84.15 +2007-02-05,84.30,85.23,83.94,83.94,20673300,83.94 +2007-02-02,84.12,85.25,83.70,84.75,22197500,84.75 +2007-02-01,86.23,86.27,84.74,84.74,23726500,84.74 +2007-01-31,84.86,86.00,84.35,85.73,30573900,85.73 +2007-01-30,86.43,86.49,85.25,85.55,20641800,85.55 +2007-01-29,86.30,86.65,85.53,85.94,32202300,85.94 +2007-01-26,87.11,87.37,84.99,85.38,35245500,85.38 +2007-01-25,87.11,88.50,86.03,86.25,32356200,86.25 +2007-01-24,86.68,87.15,86.08,86.70,33136200,86.70 +2007-01-23,85.73,87.51,85.51,85.70,43122300,85.70 +2007-01-22,89.14,89.16,85.65,86.79,51929500,86.79 +2007-01-19,88.63,89.65,88.12,88.50,48731200,88.50 +2007-01-18,92.10,92.11,89.05,89.07,84450200,89.07 +2007-01-17,97.56,97.60,94.82,94.95,58795000,94.95 +2007-01-16,95.68,97.25,95.45,97.10,44431300,97.10 +2007-01-12,94.59,95.06,93.23,94.62,46881800,94.62 +2007-01-11,95.94,96.78,95.10,95.80,51437600,95.80 +2007-01-10,94.75,97.80,93.45,97.00,105460000,97.00 +2007-01-09,86.45,92.98,85.15,92.57,119617800,92.57 +2007-01-08,85.96,86.53,85.28,85.47,28468100,85.47 +2007-01-05,85.77,86.20,84.40,85.05,29812200,85.05 +2007-01-04,84.05,85.95,83.82,85.66,30259300,85.66 +2007-01-03,86.29,86.58,81.90,83.80,44225700,83.80 +2006-12-29,83.95,85.40,83.36,84.84,38443900,84.84 +2006-12-28,80.22,81.25,79.65,80.87,39995600,80.87 +2006-12-27,78.15,82.00,76.77,81.52,69134100,81.52 +2006-12-26,82.15,82.57,80.89,81.51,17524600,81.51 +2006-12-22,83.46,84.04,81.60,82.20,21903700,82.20 +2006-12-21,84.70,85.48,82.20,82.90,32271400,82.90 +2006-12-20,86.47,86.67,84.74,84.76,20274700,84.76 +2006-12-19,84.73,86.68,83.62,86.31,32550200,86.31 +2006-12-18,87.63,88.00,84.59,85.47,25770600,85.47 +2006-12-15,89.02,89.22,87.33,87.72,26426400,87.72 +2006-12-14,89.05,90.00,88.26,88.55,29726100,88.55 +2006-12-13,87.95,89.07,87.15,89.05,30609000,89.05 +2006-12-12,88.61,88.84,85.53,86.14,36665000,86.14 +2006-12-11,88.90,89.30,88.05,88.75,17849300,88.75 +2006-12-08,87.23,89.39,87.00,88.26,28009900,88.26 +2006-12-07,90.03,90.50,86.90,87.04,35886700,87.04 +2006-12-06,90.64,91.39,89.67,89.83,22792300,89.83 +2006-12-05,91.65,92.33,90.87,91.27,23672800,91.27 +2006-12-04,91.88,92.05,90.50,91.12,25340600,91.12 +2006-12-01,91.80,92.33,90.10,91.32,28395700,91.32 +2006-11-30,92.21,92.68,91.06,91.66,31088800,91.66 +2006-11-29,93.00,93.15,90.25,91.80,41324400,91.80 +2006-11-28,90.36,91.97,89.91,91.81,37006200,91.81 +2006-11-27,92.51,93.16,89.50,89.54,38387000,89.54 +2006-11-24,89.53,93.08,89.50,91.63,18524200,91.63 +2006-11-22,88.99,90.75,87.85,90.31,23997900,90.31 +2006-11-21,87.42,88.60,87.11,88.60,22238100,88.60 +2006-11-20,85.40,87.00,85.20,86.47,20385500,86.47 +2006-11-17,85.14,85.94,85.00,85.85,16658000,85.85 +2006-11-16,84.87,86.30,84.62,85.61,24783600,85.61 +2006-11-15,85.05,85.90,84.00,84.05,23404400,84.05 +2006-11-14,84.80,85.00,83.90,85.00,21034100,85.00 +2006-11-13,83.22,84.45,82.64,84.35,16095500,84.35 +2006-11-10,83.55,83.60,82.50,83.12,13352300,83.12 +2006-11-09,82.90,84.69,82.12,83.34,32966200,83.34 +2006-11-08,80.02,82.69,79.89,82.45,24675600,82.45 +2006-11-07,80.45,81.00,80.13,80.51,18783300,80.51 +2006-11-06,78.95,80.06,78.43,79.71,15520600,79.71 +2006-11-03,79.36,79.53,77.79,78.29,15424600,78.29 +2006-11-02,78.92,79.32,78.50,78.98,16624400,78.98 +2006-11-01,81.10,81.38,78.36,79.16,21828300,79.16 +2006-10-31,81.45,81.68,80.23,81.08,17909800,81.08 +2006-10-30,79.99,80.90,79.50,80.42,17854200,80.42 +2006-10-27,81.75,82.45,80.01,80.41,21248800,80.41 +2006-10-26,81.90,82.60,81.13,82.19,15455600,82.19 +2006-10-25,81.35,82.00,81.01,81.68,17329100,81.68 +2006-10-24,81.21,81.68,80.20,81.05,16543300,81.05 +2006-10-23,79.99,81.90,79.75,81.46,29732400,81.46 +2006-10-20,78.97,79.99,78.67,79.95,22836200,79.95 +2006-10-19,79.26,79.95,78.16,78.99,54034900,78.99 +2006-10-18,74.75,75.37,73.91,74.53,40496700,74.53 +2006-10-17,75.04,75.27,74.04,74.29,17175900,74.29 +2006-10-16,75.19,75.88,74.79,75.40,18167600,75.40 +2006-10-13,75.63,76.88,74.74,75.02,24435600,75.02 +2006-10-12,73.61,75.39,73.60,75.26,21173400,75.26 +2006-10-11,73.42,73.98,72.60,73.23,20423400,73.23 +2006-10-10,74.54,74.58,73.08,73.81,18985300,73.81 +2006-10-09,73.80,75.08,73.53,74.63,15650800,74.63 +2006-10-06,74.42,75.04,73.81,74.22,16677100,74.22 +2006-10-05,74.53,76.16,74.13,74.83,24424400,74.83 +2006-10-04,74.10,75.46,73.16,75.38,29610100,75.38 +2006-10-03,74.45,74.95,73.19,74.08,28239600,74.08 +2006-10-02,75.10,75.87,74.30,74.86,25451400,74.86 +2006-09-29,77.11,77.52,76.68,76.98,14493300,76.98 +2006-09-28,77.02,77.48,75.95,77.01,25843200,77.01 +2006-09-27,77.17,77.47,75.82,76.41,28941900,76.41 +2006-09-26,76.18,77.78,76.10,77.61,39391000,77.61 +2006-09-25,73.81,75.86,73.72,75.75,30678300,75.75 +2006-09-22,74.30,74.34,72.58,73.00,23754000,73.00 +2006-09-21,75.25,76.06,74.02,74.65,28361600,74.65 +2006-09-20,74.38,75.68,74.22,75.26,29385400,75.26 +2006-09-19,74.10,74.36,72.80,73.77,25358900,73.77 +2006-09-18,73.80,74.86,73.30,73.89,25188500,73.89 +2006-09-15,74.60,74.98,73.29,74.10,35066200,74.10 +2006-09-14,73.72,74.67,73.46,74.17,28633200,74.17 +2006-09-13,72.85,74.32,72.30,74.20,40933500,74.20 +2006-09-12,72.81,73.45,71.45,72.63,60167400,72.63 +2006-09-11,72.43,73.73,71.42,72.50,33897300,72.50 +2006-09-08,73.37,73.57,71.91,72.52,31997200,72.52 +2006-09-07,70.60,73.48,70.25,72.80,45284200,72.80 +2006-09-06,71.08,71.69,69.70,70.03,34789400,70.03 +2006-09-05,68.97,71.50,68.55,71.48,36159200,71.48 +2006-09-01,68.48,68.65,67.82,68.38,14589100,68.38 +2006-08-31,67.28,68.30,66.66,67.85,20524900,67.85 +2006-08-30,67.34,67.82,66.68,66.96,24290800,66.96 +2006-08-29,66.99,67.26,65.12,66.48,33833300,66.48 +2006-08-28,68.50,68.61,66.68,66.98,26362900,66.98 +2006-08-25,67.34,69.05,67.31,68.75,19427100,68.75 +2006-08-24,67.89,68.19,66.27,67.81,23399700,67.81 +2006-08-23,68.00,68.65,66.94,67.31,19152100,67.31 +2006-08-22,66.68,68.32,66.50,67.62,20606000,67.62 +2006-08-21,67.30,67.31,66.15,66.56,18793800,66.56 +2006-08-18,67.71,68.40,67.26,67.91,19155500,67.91 +2006-08-17,68.00,68.66,67.18,67.59,20755300,67.59 +2006-08-16,67.10,68.07,66.33,67.98,27903000,67.98 +2006-08-15,65.34,66.50,64.80,66.45,30762600,66.45 +2006-08-14,64.05,65.22,63.60,63.94,25629300,63.94 +2006-08-11,63.23,64.13,62.58,63.65,27768900,63.65 +2006-08-10,63.25,64.81,62.70,64.07,24920000,64.07 +2006-08-09,65.43,65.60,63.40,63.59,34137100,63.59 +2006-08-08,67.09,67.11,64.51,64.78,35638000,64.78 +2006-08-07,67.72,69.60,66.31,67.21,44482600,67.21 +2006-08-04,67.05,68.61,64.96,68.30,66173800,68.30 +2006-08-03,67.91,70.00,67.81,69.59,30037300,69.59 +2006-08-02,67.65,68.68,67.51,68.16,19670300,68.16 +2006-08-01,67.22,67.93,65.94,67.18,25420200,67.18 +2006-07-31,66.83,68.63,66.28,67.96,31887200,67.96 +2006-07-28,63.94,65.68,63.50,65.59,24696700,65.59 +2006-07-27,64.50,65.02,62.86,63.40,26251600,63.40 +2006-07-26,62.00,64.64,61.68,63.87,32086700,63.87 +2006-07-25,61.78,62.09,60.78,61.93,21038200,61.93 +2006-07-24,61.26,62.10,60.43,61.42,25816300,61.42 +2006-07-21,59.82,61.15,59.64,60.72,31853300,60.72 +2006-07-20,60.96,61.59,59.72,60.50,70433800,60.50 +2006-07-19,52.96,55.08,52.36,54.10,49669400,54.10 +2006-07-18,53.16,53.85,51.85,52.90,35730300,52.90 +2006-07-17,51.73,53.11,51.65,52.37,36590800,52.37 +2006-07-14,52.50,52.89,50.16,50.67,35465600,50.67 +2006-07-13,52.03,54.12,51.41,52.25,44639500,52.25 +2006-07-12,55.17,55.24,52.92,52.96,33118900,52.96 +2006-07-11,55.11,55.99,54.53,55.65,29465100,55.65 +2006-07-10,55.70,56.49,54.50,55.00,18905200,55.00 +2006-07-07,55.48,56.55,54.67,55.40,28548600,55.40 +2006-07-06,57.09,57.40,55.61,55.77,22614600,55.77 +2006-07-05,57.15,57.60,56.56,57.00,18508600,57.00 +2006-07-03,57.52,58.18,57.34,57.95,6956100,57.95 +2006-06-30,57.59,57.75,56.50,57.27,26417700,57.27 +2006-06-29,56.76,59.09,56.39,58.97,31192800,58.97 +2006-06-28,57.29,57.30,55.41,56.02,30382300,56.02 +2006-06-27,59.09,59.22,57.40,57.43,19664700,57.43 +2006-06-26,59.17,59.20,58.37,58.99,16662000,58.99 +2006-06-23,59.72,60.17,58.73,58.83,23578700,58.83 +2006-06-22,58.20,59.75,58.07,59.58,34486900,59.58 +2006-06-21,57.74,58.71,57.30,57.86,30832000,57.86 +2006-06-20,57.61,58.35,57.29,57.47,24034800,57.47 +2006-06-19,57.83,58.18,57.00,57.20,25163400,57.20 +2006-06-16,58.96,59.19,57.52,57.56,29932200,57.56 +2006-06-15,57.30,59.74,56.75,59.38,42513700,59.38 +2006-06-14,58.28,58.78,56.69,57.61,31362000,57.61 +2006-06-13,57.61,59.10,57.36,58.33,38594400,58.33 +2006-06-12,59.40,59.73,56.96,57.00,25635200,57.00 +2006-06-09,61.18,61.56,59.10,59.24,27708500,59.24 +2006-06-08,58.44,60.93,57.15,60.76,49910100,60.76 +2006-06-07,60.10,60.40,58.35,58.56,26803800,58.56 +2006-06-06,60.22,60.63,58.91,59.72,25929900,59.72 +2006-06-05,61.15,61.15,59.97,60.00,21635200,60.00 +2006-06-02,62.99,63.10,60.88,61.66,24492400,61.66 +2006-06-01,59.85,62.28,59.52,62.17,33661000,62.17 +2006-05-31,61.76,61.79,58.69,59.77,45749200,59.77 +2006-05-30,63.29,63.30,61.22,61.22,20121500,61.22 +2006-05-26,64.31,64.56,63.14,63.55,15462500,63.55 +2006-05-25,64.26,64.45,63.29,64.33,16549000,64.33 +2006-05-24,62.99,63.65,61.56,63.34,32715400,63.34 +2006-05-23,64.86,65.19,63.00,63.15,24800500,63.15 +2006-05-22,63.87,63.99,62.77,63.38,25677700,63.38 +2006-05-19,63.26,64.88,62.82,64.51,35209500,64.51 +2006-05-18,65.68,66.26,63.12,63.18,23515800,63.18 +2006-05-17,64.71,65.70,64.07,65.26,26935500,65.26 +2006-05-16,68.10,68.25,64.75,64.98,33455000,64.98 +2006-05-15,67.37,68.38,67.12,67.79,18899200,67.79 +2006-05-12,67.85,68.69,66.86,67.70,22920500,67.70 +2006-05-11,70.79,70.84,67.55,68.15,29024600,68.15 +2006-05-10,71.29,71.33,69.61,70.60,16424600,70.60 +2006-05-09,71.82,72.56,70.62,71.03,18988100,71.03 +2006-05-08,72.99,73.80,71.72,71.89,21244700,71.89 +2006-05-05,71.86,72.25,71.15,71.89,20139700,71.89 +2006-05-04,71.22,72.89,70.46,71.13,30729300,71.13 +2006-05-03,71.83,71.95,70.18,71.14,24535400,71.14 +2006-05-02,70.15,71.98,70.11,71.62,27559400,71.62 +2006-05-01,70.77,71.54,69.16,69.60,26799300,69.60 +2006-04-28,69.38,71.30,69.20,70.39,27144200,70.39 +2006-04-27,67.73,69.86,67.35,69.36,30212400,69.36 +2006-04-26,66.65,68.28,66.40,68.15,25388800,68.15 +2006-04-25,65.96,66.59,65.56,66.17,18895100,66.17 +2006-04-24,66.85,66.92,65.50,65.75,25251000,65.75 +2006-04-21,68.19,68.64,66.47,67.04,28178100,67.04 +2006-04-20,69.51,70.00,66.20,67.63,59535100,67.63 +2006-04-19,66.82,67.00,65.47,65.65,38786900,65.65 +2006-04-18,65.04,66.47,64.79,66.22,28387300,66.22 +2006-04-17,66.51,66.84,64.35,64.81,25783500,64.81 +2006-04-13,66.34,67.44,65.81,66.47,26238500,66.47 +2006-04-12,68.01,68.17,66.30,66.71,26424800,66.71 +2006-04-11,68.99,69.30,67.07,67.99,33547000,67.99 +2006-04-10,70.29,70.93,68.45,68.67,32268400,68.67 +2006-04-07,70.93,71.21,68.47,69.79,55187100,69.79 +2006-04-06,68.30,72.05,68.20,71.24,95134600,71.24 +2006-04-05,64.71,67.21,64.15,67.21,79764600,67.21 +2006-04-04,62.10,62.22,61.05,61.17,33283000,61.17 +2006-04-03,63.67,64.12,62.61,62.65,29135400,62.65 +2006-03-31,63.25,63.61,62.24,62.72,29119900,62.72 +2006-03-30,62.82,63.30,61.53,62.75,49666100,62.75 +2006-03-29,59.13,62.52,57.67,62.33,83815500,62.33 +2006-03-28,59.63,60.14,58.25,58.71,48940100,58.71 +2006-03-27,60.35,61.38,59.40,59.51,39574000,59.51 +2006-03-24,60.25,60.94,59.03,59.96,38285000,59.96 +2006-03-23,61.82,61.90,59.61,60.16,50993800,60.16 +2006-03-22,62.16,63.25,61.27,61.67,48067700,61.67 +2006-03-21,64.29,64.34,61.39,61.81,47991700,61.81 +2006-03-20,65.22,65.46,63.87,63.99,21622900,63.99 +2006-03-17,64.75,65.54,64.11,64.66,29001500,64.66 +2006-03-16,66.85,66.90,64.30,64.31,26772800,64.31 +2006-03-15,67.71,68.04,65.52,66.23,31857000,66.23 +2006-03-14,65.77,67.32,65.50,67.32,22929300,67.32 +2006-03-13,65.05,66.28,64.79,65.68,30756700,65.68 +2006-03-10,64.05,64.49,62.45,63.19,37255100,63.19 +2006-03-09,65.98,66.47,63.81,63.93,28546600,63.93 +2006-03-08,66.29,67.20,65.35,65.66,23330400,65.66 +2006-03-07,65.76,66.90,65.08,66.31,31174200,66.31 +2006-03-06,67.69,67.72,64.94,65.48,32595200,65.48 +2006-03-03,69.40,69.91,67.53,67.72,26345300,67.72 +2006-03-02,68.99,69.99,68.67,69.61,22331200,69.61 +2006-03-01,68.84,69.49,68.02,69.10,27279200,69.10 +2006-02-28,71.58,72.40,68.10,68.49,45249300,68.49 +2006-02-27,71.99,72.12,70.65,70.99,28258600,70.99 +2006-02-24,72.14,72.89,71.20,71.46,19098000,71.46 +2006-02-23,71.79,73.00,71.43,71.75,30604200,71.75 +2006-02-22,69.00,71.67,68.00,71.32,34937100,71.32 +2006-02-21,70.59,70.80,68.68,69.08,27843100,69.08 +2006-02-17,70.30,70.89,69.61,70.29,20571400,70.29 +2006-02-16,69.91,71.01,69.48,70.57,33863400,70.57 +2006-02-15,67.16,69.62,66.75,69.22,41420400,69.22 +2006-02-14,65.10,68.10,65.00,67.64,41462100,67.64 +2006-02-13,66.63,66.75,64.64,64.71,31553500,64.71 +2006-02-10,65.18,67.67,62.90,67.31,62874200,67.31 +2006-02-09,69.10,69.23,64.53,64.95,41063000,64.95 +2006-02-08,68.49,69.08,66.00,68.81,34039800,68.81 +2006-02-07,68.27,69.48,66.68,67.60,49601100,67.60 +2006-02-06,72.02,72.51,66.74,67.30,58991700,67.30 +2006-02-03,72.24,72.79,71.04,71.85,24718700,71.85 +2006-02-02,75.10,75.36,72.05,72.10,25261500,72.10 +2006-02-01,74.95,76.46,74.64,75.42,18613800,75.42 +2006-01-31,75.50,76.34,73.75,75.51,32626500,75.51 +2006-01-30,71.17,76.60,70.87,75.00,49942900,75.00 +2006-01-27,72.95,73.60,71.10,72.03,34066600,72.03 +2006-01-26,74.53,75.43,71.93,72.33,42192400,72.33 +2006-01-25,77.39,77.50,73.25,74.20,45563800,74.20 +2006-01-24,78.76,79.42,75.77,76.04,40794800,76.04 +2006-01-23,76.10,79.56,76.00,77.67,37847500,77.67 +2006-01-20,79.28,80.04,75.83,76.09,40527100,76.09 +2006-01-19,81.25,81.66,78.74,79.04,60566000,79.04 +2006-01-18,83.08,84.05,81.85,82.49,42879900,82.49 +2006-01-17,85.70,86.38,83.87,84.71,29843700,84.71 +2006-01-13,84.99,86.01,84.60,85.59,27725200,85.59 +2006-01-12,84.97,86.40,83.62,84.29,45743200,84.29 +2006-01-11,83.84,84.80,82.59,83.90,53349800,83.90 +2006-01-10,76.25,81.89,75.83,80.86,81423900,80.86 +2006-01-09,76.73,77.20,75.74,76.05,24108600,76.05 +2006-01-06,75.25,76.70,74.55,76.30,25159200,76.30 +2006-01-05,74.83,74.90,73.75,74.38,16050800,74.38 +2006-01-04,75.13,75.98,74.50,74.97,22128700,74.97 +2006-01-03,72.38,74.75,72.25,74.75,28829800,74.75 +2005-12-30,70.91,72.43,70.34,71.89,22295100,71.89 +2005-12-29,73.78,73.82,71.42,71.45,17500900,71.45 +2005-12-28,74.47,74.76,73.32,73.57,14218400,73.57 +2005-12-27,74.00,75.18,73.95,74.23,21092500,74.23 +2005-12-23,74.17,74.26,73.30,73.35,8209200,73.35 +2005-12-22,73.91,74.49,73.60,74.02,13236100,74.02 +2005-12-21,72.60,73.61,72.54,73.50,16990600,73.50 +2005-12-20,71.63,72.38,71.12,72.11,17111000,72.11 +2005-12-19,71.11,72.60,71.04,71.38,18903400,71.38 +2005-12-16,72.14,72.30,71.06,71.11,23970400,71.11 +2005-12-15,72.68,72.86,71.35,72.18,20041500,72.18 +2005-12-14,72.53,73.30,70.27,72.01,51811300,72.01 +2005-12-13,74.85,75.46,74.21,74.98,17636300,74.98 +2005-12-12,74.87,75.35,74.56,74.91,18749800,74.91 +2005-12-09,74.21,74.59,73.35,74.33,19835800,74.33 +2005-12-08,73.20,74.17,72.60,74.08,28231500,74.08 +2005-12-07,74.23,74.46,73.12,73.95,24266600,73.95 +2005-12-06,73.93,74.83,73.35,74.05,30608200,74.05 +2005-12-05,71.95,72.53,71.49,71.82,20845400,71.82 +2005-12-02,72.27,72.74,70.70,72.63,31991500,72.63 +2005-12-01,68.95,71.73,68.81,71.60,29031900,71.60 +2005-11-30,68.43,68.85,67.52,67.82,21274100,67.82 +2005-11-29,69.99,70.30,67.35,68.10,31836900,68.10 +2005-11-28,70.72,71.07,69.07,69.66,36375700,69.66 +2005-11-25,67.66,69.54,67.50,69.34,14107600,69.34 +2005-11-23,66.88,67.98,66.69,67.11,17351900,67.11 +2005-11-22,64.84,66.76,64.52,66.52,19295800,66.52 +2005-11-21,64.82,65.19,63.72,64.96,18275400,64.96 +2005-11-18,65.31,65.43,64.37,64.56,18748700,64.56 +2005-11-17,65.59,65.88,64.25,64.52,24150200,64.52 +2005-11-16,63.15,65.06,63.09,64.95,28018400,64.95 +2005-11-15,61.60,63.08,61.46,62.28,19172900,62.28 +2005-11-14,61.54,61.98,60.91,61.45,13211900,61.45 +2005-11-11,61.54,62.11,61.34,61.54,15194600,61.54 +2005-11-10,60.64,61.20,59.01,61.18,23762300,61.18 +2005-11-09,60.00,61.21,60.00,60.11,19747500,60.11 +2005-11-08,59.95,60.38,59.10,59.90,16920200,59.90 +2005-11-07,60.85,61.67,60.14,60.23,22815400,60.23 +2005-11-04,60.35,61.24,59.62,61.15,31358400,61.15 +2005-11-03,60.26,62.32,60.07,61.85,31585100,61.85 +2005-11-02,57.72,60.00,57.60,59.95,30609300,59.95 +2005-11-01,57.24,58.14,56.87,57.50,26774500,57.50 +2005-10-31,55.20,57.98,54.75,57.59,33601600,57.59 +2005-10-28,56.04,56.43,54.17,54.47,27492400,54.47 +2005-10-27,56.99,57.01,55.41,55.41,14697900,55.41 +2005-10-26,56.28,57.56,55.92,57.03,22556900,57.03 +2005-10-25,56.40,56.85,55.69,56.10,16611700,56.10 +2005-10-24,55.25,56.79,55.09,56.79,21776900,56.79 +2005-10-21,56.84,56.98,55.36,55.66,28454500,55.66 +2005-10-20,54.47,56.50,54.35,56.14,48491500,56.14 +2005-10-19,52.07,54.96,51.21,54.94,36024400,54.94 +2005-10-18,53.25,53.95,52.20,52.21,21771000,52.21 +2005-10-17,53.98,54.23,52.68,53.44,22029800,53.44 +2005-10-14,54.03,54.35,52.79,54.00,36984000,54.00 +2005-10-13,49.44,53.95,49.27,53.74,66627700,53.74 +2005-10-12,48.65,50.30,47.87,49.25,96338800,49.25 +2005-10-11,51.23,51.87,50.40,51.59,43781600,51.59 +2005-10-10,51.76,51.91,50.28,50.37,18125200,50.37 +2005-10-07,51.72,51.93,50.55,51.30,24210100,51.30 +2005-10-06,53.20,53.49,50.87,51.70,27054900,51.70 +2005-10-05,54.33,54.36,52.75,52.78,21813200,52.78 +2005-10-04,54.95,55.35,53.64,53.75,19266400,53.75 +2005-10-03,54.16,54.54,53.68,54.44,18126900,54.44 +2005-09-30,52.33,53.65,51.88,53.61,18986900,53.61 +2005-09-29,51.23,52.59,50.81,52.34,22744500,52.34 +2005-09-28,53.07,53.11,50.59,51.08,40198000,51.08 +2005-09-27,53.92,54.24,53.43,53.44,12203700,53.44 +2005-09-26,54.03,54.56,53.32,53.84,19520100,53.84 +2005-09-23,52.10,53.50,51.84,53.20,19944900,53.20 +2005-09-22,51.88,52.47,51.32,51.90,16561700,51.90 +2005-09-21,52.96,53.05,51.86,52.11,15526700,52.11 +2005-09-20,52.99,53.81,52.92,53.19,29279600,53.19 +2005-09-19,51.05,52.89,51.05,52.64,27990400,52.64 +2005-09-16,50.23,51.21,49.95,51.21,21107300,51.21 +2005-09-15,50.00,50.18,49.33,49.87,14827000,49.87 +2005-09-14,51.06,51.19,49.46,49.61,16943800,49.61 +2005-09-13,51.02,51.29,50.32,50.82,17603000,50.82 +2005-09-12,51.10,51.63,50.58,51.40,16171300,51.40 +2005-09-09,50.07,51.35,49.79,51.31,21987200,51.31 +2005-09-08,49.35,50.12,49.14,49.78,25094300,49.78 +2005-09-07,49.05,49.40,47.92,48.68,34395500,48.68 +2005-09-06,46.70,48.88,46.55,48.80,29236400,48.80 +2005-09-02,46.30,46.80,46.12,46.22,7942100,46.22 +2005-09-01,47.00,47.17,46.09,46.26,12727400,46.26 +2005-08-31,46.86,47.03,46.27,46.89,14391300,46.89 +2005-08-30,45.99,46.79,45.92,46.57,18527200,46.57 +2005-08-29,45.27,46.03,45.26,45.84,9153400,45.84 +2005-08-26,46.12,46.34,45.36,45.74,9323500,45.74 +2005-08-25,46.12,46.49,45.81,46.06,9866200,46.06 +2005-08-24,45.60,47.12,45.59,45.77,20431100,45.77 +2005-08-23,45.85,46.10,45.32,45.74,10557300,45.74 +2005-08-22,46.15,46.75,45.26,45.87,13847600,45.87 +2005-08-19,46.28,46.70,45.77,45.83,13448900,45.83 +2005-08-18,46.91,47.00,45.75,46.30,15805700,46.30 +2005-08-17,46.40,47.44,46.37,47.15,17847300,47.15 +2005-08-16,47.39,47.50,46.21,46.25,19200800,46.25 +2005-08-15,46.48,48.33,46.45,47.68,38811700,47.68 +2005-08-12,43.46,46.22,43.36,46.10,32715600,46.10 +2005-08-11,43.39,44.12,43.25,44.00,9713700,44.00 +2005-08-10,44.00,44.39,43.31,43.38,12890900,43.38 +2005-08-09,42.93,43.89,42.91,43.82,13601400,43.82 +2005-08-08,43.00,43.25,42.61,42.65,6299400,42.65 +2005-08-05,42.49,43.36,42.02,42.99,8640400,42.99 +2005-08-04,42.89,43.00,42.29,42.71,9618000,42.71 +2005-08-03,43.19,43.31,42.77,43.22,9225800,43.22 +2005-08-02,42.89,43.50,42.61,43.19,10602700,43.19 +2005-08-01,42.57,43.08,42.08,42.75,11223200,42.75 +2005-07-29,43.56,44.38,42.26,42.65,20074300,42.65 +2005-07-28,43.85,44.00,43.30,43.80,8975400,43.80 +2005-07-27,43.83,44.07,42.67,43.99,10133900,43.99 +2005-07-26,44.01,44.11,43.36,43.63,9592600,43.63 +2005-07-25,43.99,44.28,43.73,43.81,10522400,43.81 +2005-07-22,43.44,44.00,43.39,44.00,10753800,44.00 +2005-07-21,43.70,44.04,42.90,43.29,14438000,43.29 +2005-07-20,42.86,43.80,42.65,43.63,16192700,43.63 +2005-07-19,41.52,43.23,41.07,43.19,23966500,43.19 +2005-07-18,41.41,42.10,41.37,41.49,20939200,41.49 +2005-07-15,40.97,41.57,40.46,41.55,24560100,41.55 +2005-07-14,40.79,42.01,40.23,40.75,74859300,40.75 +2005-07-13,38.29,38.50,37.90,38.35,24458400,38.35 +2005-07-12,38.23,38.40,37.91,38.24,13822800,38.24 +2005-07-11,38.37,38.65,37.78,38.10,13885300,38.10 +2005-07-08,37.87,38.28,37.47,38.25,10383400,38.25 +2005-07-07,36.81,37.76,36.80,37.63,13704400,37.63 +2005-07-06,37.71,38.16,37.20,37.39,14093800,37.39 +2005-07-05,36.55,38.15,36.50,37.98,16223900,37.98 +2005-07-01,36.83,36.97,36.29,36.50,8928600,36.50 +2005-06-30,36.61,37.16,36.31,36.81,14942500,36.81 +2005-06-29,37.23,37.29,36.12,36.37,16012800,36.37 +2005-06-28,37.49,37.59,37.17,37.31,12510700,37.31 +2005-06-27,36.84,38.10,36.68,37.10,21434700,37.10 +2005-06-24,39.09,39.12,37.68,37.76,14668200,37.76 +2005-06-23,38.83,39.78,38.65,38.89,24080500,38.89 +2005-06-22,38.26,38.60,38.14,38.55,15175900,38.55 +2005-06-21,37.72,38.19,37.38,37.86,13233100,37.86 +2005-06-20,37.85,38.09,37.45,37.61,11561300,37.61 +2005-06-17,38.47,38.54,37.83,38.31,21290200,38.31 +2005-06-16,37.19,38.08,36.82,37.98,19559800,37.98 +2005-06-15,36.87,37.30,36.30,37.13,20119400,37.13 +2005-06-14,35.92,36.15,35.75,36.00,12423100,36.00 +2005-06-13,35.89,36.61,35.82,35.90,15563300,35.90 +2005-06-10,37.40,37.40,35.52,35.81,24247600,35.81 +2005-06-09,37.00,37.94,36.82,37.65,13937700,37.65 +2005-06-08,36.63,37.25,36.57,36.92,14428800,36.92 +2005-06-07,37.60,37.73,36.45,36.54,26616600,36.54 +2005-06-06,38.33,38.63,37.56,37.92,28998800,37.92 +2005-06-03,38.16,38.58,37.77,38.24,34173900,38.24 +2005-06-02,40.05,40.32,39.60,40.04,13356200,40.04 +2005-06-01,39.89,40.76,39.86,40.30,16207600,40.30 +2005-05-31,40.66,40.74,39.58,39.76,14435900,39.76 +2005-05-27,40.64,40.79,40.01,40.56,11286000,40.56 +2005-05-26,39.94,40.94,39.94,40.74,18768600,40.74 +2005-05-25,39.50,39.95,39.32,39.78,14143100,39.78 +2005-05-24,39.45,39.99,39.03,39.70,21195000,39.70 +2005-05-23,37.85,39.90,37.85,39.76,37234800,39.76 +2005-05-20,37.25,37.65,37.19,37.55,16166100,37.55 +2005-05-19,35.78,37.68,35.78,37.55,28327200,37.55 +2005-05-18,35.45,37.56,34.99,35.84,22740100,35.84 +2005-05-17,35.14,35.46,34.54,35.36,21012300,35.36 +2005-05-16,34.56,35.70,34.53,35.55,16939100,35.55 +2005-05-13,34.20,35.23,34.07,34.77,25096900,34.77 +2005-05-12,35.42,35.59,34.00,34.13,34651500,34.13 +2005-05-11,35.20,35.67,33.11,35.61,72927900,35.61 +2005-05-10,36.75,37.25,36.33,36.42,15723700,36.42 +2005-05-09,37.28,37.45,36.75,36.97,12703400,36.97 +2005-05-06,36.89,37.33,36.79,37.24,11651700,37.24 +2005-05-05,37.25,37.27,36.47,36.68,13834500,36.68 +2005-05-04,36.11,37.20,36.10,37.15,16006300,37.15 +2005-05-03,36.40,36.74,36.03,36.21,17740700,36.21 +2005-05-02,36.21,36.65,36.02,36.43,16640000,36.43 +2005-04-29,36.15,36.23,35.22,36.06,23986800,36.06 +2005-04-28,36.29,36.34,35.24,35.54,20539500,35.54 +2005-04-27,35.89,36.36,35.51,35.95,21924600,35.95 +2005-04-26,36.78,37.51,36.12,36.19,28946700,36.19 +2005-04-25,36.49,37.02,36.11,36.98,26659300,36.98 +2005-04-22,36.84,37.00,34.90,35.50,29968900,35.50 +2005-04-21,36.40,37.21,35.90,37.18,27128300,37.18 +2005-04-20,37.66,37.74,35.44,35.51,33754700,35.51 +2005-04-19,36.60,37.44,35.87,37.09,38630100,37.09 +2005-04-18,35.00,36.30,34.00,35.62,47399200,35.62 +2005-04-15,36.62,37.25,35.28,35.35,61717400,35.35 +2005-04-14,38.81,39.56,36.84,37.26,98328300,37.26 +2005-04-13,42.95,42.99,40.39,41.04,48998100,41.04 +2005-04-12,42.49,43.19,42.01,42.66,35037900,42.66 +2005-04-11,44.15,44.25,41.91,41.92,29345100,41.92 +2005-04-08,43.70,44.45,43.54,43.74,23212500,43.74 +2005-04-07,42.33,43.75,42.25,43.56,18106700,43.56 +2005-04-06,42.40,42.81,42.15,42.33,14815200,42.33 +2005-04-05,41.22,42.24,41.09,41.89,19865700,41.89 +2005-04-04,40.99,41.31,40.16,41.09,20714800,41.09 +2005-04-01,42.09,42.18,40.57,40.89,22903000,40.89 +2005-03-31,42.45,42.52,41.59,41.67,22719100,41.67 +2005-03-30,42.07,42.80,41.82,42.80,14105700,42.80 +2005-03-29,42.56,42.83,41.50,41.75,16477000,41.75 +2005-03-28,42.75,42.96,42.47,42.53,9836100,42.53 +2005-03-24,42.91,43.00,42.50,42.50,12596600,42.50 +2005-03-23,42.45,43.40,42.02,42.55,21779400,42.55 +2005-03-22,43.71,43.96,42.68,42.83,19693400,42.83 +2005-03-21,43.29,43.97,42.86,43.70,19326000,43.70 +2005-03-18,43.33,43.44,42.50,42.96,33576800,42.96 +2005-03-17,41.53,42.88,41.32,42.25,28640000,42.25 +2005-03-16,41.21,42.31,40.78,41.18,24921900,41.18 +2005-03-15,40.64,41.14,40.25,40.96,18164600,40.96 +2005-03-14,40.52,40.79,39.52,40.32,21620900,40.32 +2005-03-11,40.21,40.59,39.80,40.27,22601100,40.27 +2005-03-10,39.53,40.26,39.10,39.83,27753900,39.83 +2005-03-09,39.64,40.28,38.83,39.35,47230900,39.35 +2005-03-08,41.90,42.16,40.10,40.53,36480400,40.53 +2005-03-07,42.80,43.25,42.35,42.75,16094000,42.75 +2005-03-04,42.76,43.01,41.85,42.81,27022100,42.81 +2005-03-03,44.37,44.41,41.22,41.79,50416200,41.79 +2005-03-02,44.25,44.89,44.08,44.12,16362900,44.12 +2005-03-01,44.99,45.11,44.16,44.50,16721000,44.50 +2005-02-28,44.68,45.14,43.96,44.86,23271800,44.86 +2005-02-25,89.62,89.91,88.19,88.99,32696800,44.49 +2005-02-24,88.48,89.31,87.73,88.93,54251000,44.47 +2005-02-23,86.72,88.45,85.55,88.23,48042200,44.12 +2005-02-22,86.30,88.30,85.29,85.29,43546200,42.65 +2005-02-18,87.74,87.86,86.25,86.81,41544800,43.40 +2005-02-17,90.65,90.88,87.45,87.81,54231200,43.90 +2005-02-16,88.15,90.20,87.35,90.13,58544400,45.06 +2005-02-15,86.66,89.08,86.00,88.41,82579200,44.21 +2005-02-14,82.73,84.79,82.05,84.63,45409400,42.31 +2005-02-11,79.86,81.76,78.94,81.21,42894800,40.60 +2005-02-10,78.72,79.28,76.66,78.36,39036400,39.18 +2005-02-09,81.04,81.99,78.10,78.74,42552000,39.37 +2005-02-08,79.07,81.38,78.79,80.90,31786400,40.45 +2005-02-07,78.93,79.35,77.50,78.94,18730600,39.47 +2005-02-04,77.87,78.93,77.53,78.84,20127000,39.42 +2005-02-03,79.10,79.43,77.33,77.81,26130400,38.90 +2005-02-02,77.95,79.91,77.69,79.63,36430800,39.81 +2005-02-01,77.05,77.77,76.58,77.53,24228400,38.76 +2005-01-31,74.58,77.89,74.51,76.90,60039200,38.45 +2005-01-28,72.62,73.98,72.44,73.98,28629000,36.99 +2005-01-27,72.16,72.92,71.55,72.64,17722400,36.32 +2005-01-26,72.66,72.75,71.22,72.25,26410600,36.12 +2005-01-25,71.37,72.84,70.94,72.05,34615400,36.03 +2005-01-24,70.98,71.78,70.55,70.76,30058200,35.38 +2005-01-21,71.31,71.60,70.00,70.49,32547600,35.24 +2005-01-20,69.65,71.27,69.47,70.46,32675800,35.23 +2005-01-19,70.49,71.46,69.75,69.88,26853400,34.94 +2005-01-18,69.85,70.70,67.75,70.65,35945000,35.33 +2005-01-14,70.25,71.72,69.19,70.20,63240800,35.10 +2005-01-13,73.71,74.42,69.73,69.80,113025600,34.90 +2005-01-12,65.45,65.90,63.30,65.46,68560800,32.73 +2005-01-11,68.25,69.15,64.14,64.56,93272400,32.28 +2005-01-10,69.83,70.70,67.88,68.96,61618200,34.48 +2005-01-07,65.00,69.63,64.75,69.25,79551800,34.62 +2005-01-06,64.67,64.91,63.33,64.55,25198400,32.28 +2005-01-05,64.46,65.25,64.05,64.50,24301200,32.25 +2005-01-04,63.79,65.47,62.97,63.94,39171800,31.97 +2005-01-03,64.78,65.11,62.60,63.29,24714000,31.65 +2004-12-31,64.89,65.00,64.03,64.40,9949600,32.20 +2004-12-30,64.81,65.03,64.22,64.80,12333600,32.40 +2004-12-29,63.81,64.98,63.57,64.44,16055800,32.22 +2004-12-28,63.30,64.25,62.05,64.18,21848400,32.09 +2004-12-27,64.80,65.15,62.88,63.16,19981800,31.58 +2004-12-23,63.75,64.25,63.60,64.01,8783200,32.01 +2004-12-22,63.66,64.36,63.40,63.75,20208200,31.88 +2004-12-21,63.56,63.77,61.60,63.69,38014800,31.84 +2004-12-20,65.47,66.00,61.76,62.72,41718800,31.36 +2004-12-17,66.84,67.04,64.90,64.99,27982000,32.49 +2004-12-16,66.15,67.50,66.05,66.60,40218400,33.30 +2004-12-15,65.24,65.46,64.66,65.26,14227200,32.63 +2004-12-14,65.40,65.88,65.02,65.29,14847200,32.65 +2004-12-13,65.62,65.90,64.60,64.91,14108600,32.46 +2004-12-10,65.03,66.05,64.70,65.15,27706200,32.58 +2004-12-09,62.81,64.40,62.07,63.99,26482200,32.00 +2004-12-08,63.08,64.43,62.05,63.28,24710800,31.64 +2004-12-07,65.93,66.73,62.56,62.89,37746400,31.44 +2004-12-06,64.25,66.24,62.95,65.78,44568600,32.89 +2004-12-03,64.53,65.00,61.75,62.68,44244600,31.34 +2004-12-02,66.13,66.90,64.66,65.21,35265800,32.60 +2004-12-01,67.79,67.95,66.27,67.79,28591200,33.90 +2004-11-30,68.79,68.79,67.05,67.05,36732800,33.53 +2004-11-29,68.95,69.57,67.41,68.44,61175600,34.22 +2004-11-26,65.35,65.76,64.34,64.55,19648000,32.28 +2004-11-24,61.69,65.20,61.55,64.05,49671000,32.03 +2004-11-23,62.30,62.45,61.05,61.27,32551800,30.64 +2004-11-22,61.80,64.00,57.90,61.35,91721800,30.67 +2004-11-19,55.49,56.91,54.50,55.17,27331400,27.58 +2004-11-18,54.30,55.45,54.29,55.39,16398200,27.69 +2004-11-17,55.19,55.45,54.22,54.90,14205400,27.45 +2004-11-16,55.16,55.20,54.48,54.94,10539400,27.47 +2004-11-15,55.20,55.46,54.34,55.24,13430200,27.62 +2004-11-12,55.01,55.69,54.84,55.50,14132200,27.75 +2004-11-11,54.95,55.43,54.23,55.30,14546400,27.65 +2004-11-10,53.95,55.39,53.91,54.75,18167000,27.38 +2004-11-09,54.23,54.55,53.38,54.05,16991600,27.02 +2004-11-08,54.27,55.45,53.86,54.38,18818600,27.19 +2004-11-05,54.86,55.00,52.04,54.72,43037400,27.36 +2004-11-04,55.03,55.55,54.37,54.45,33165200,27.23 +2004-11-03,54.37,56.11,53.99,55.31,43006200,27.66 +2004-11-02,52.40,54.08,52.40,53.50,26071000,26.75 +2004-11-01,52.50,53.26,52.04,52.45,21501800,26.23 +2004-10-29,51.84,53.20,51.80,52.40,28936400,26.20 +2004-10-28,49.98,52.22,49.50,52.19,30866600,26.09 +2004-10-27,48.51,50.62,48.17,50.30,42624800,25.15 +2004-10-26,47.45,48.05,46.97,47.97,21227200,23.99 +2004-10-25,47.20,47.84,47.07,47.55,14023000,23.77 +2004-10-22,47.54,47.67,47.02,47.41,17252400,23.70 +2004-10-21,47.48,48.13,47.36,47.94,25875200,23.97 +2004-10-20,47.18,47.60,46.65,47.47,21611000,23.74 +2004-10-19,48.10,48.35,47.31,47.42,28642600,23.71 +2004-10-18,44.70,47.75,44.70,47.75,42884000,23.88 +2004-10-15,44.88,45.61,44.19,45.50,36826000,22.75 +2004-10-14,43.19,45.75,42.55,44.98,98872400,22.49 +2004-10-13,38.87,39.76,38.74,39.75,41536000,19.88 +2004-10-12,38.50,38.58,37.65,38.29,16435400,19.15 +2004-10-11,38.80,39.06,38.20,38.59,11566800,19.30 +2004-10-08,39.56,39.77,38.84,39.06,12829600,19.53 +2004-10-07,40.54,40.93,39.46,39.62,15219600,19.81 +2004-10-06,39.50,40.76,39.47,40.64,15939400,20.32 +2004-10-05,38.56,39.67,38.40,39.37,14505800,19.68 +2004-10-04,39.18,39.18,38.75,38.79,20503000,19.40 +2004-10-01,39.12,39.19,38.58,38.67,16621600,19.33 +2004-09-30,39.00,39.27,38.45,38.75,15179000,19.38 +2004-09-29,37.93,38.86,37.82,38.68,9768200,19.34 +2004-09-28,37.46,38.29,37.45,38.04,12613800,19.02 +2004-09-27,36.95,37.98,36.83,37.53,14197000,18.76 +2004-09-24,37.45,38.00,37.15,37.29,13196000,18.65 +2004-09-23,37.04,37.50,36.93,37.27,14193000,18.64 +2004-09-22,38.10,38.14,36.81,36.92,14346000,18.46 +2004-09-21,37.75,38.87,37.46,38.01,13809000,19.00 +2004-09-20,36.88,37.98,36.87,37.71,8750000,18.85 +2004-09-17,36.55,37.38,36.40,37.14,17939600,18.57 +2004-09-16,35.20,36.76,35.08,36.35,17925600,18.17 +2004-09-15,35.36,35.48,34.80,35.20,8309600,17.60 +2004-09-14,35.24,35.55,34.78,35.49,9100800,17.75 +2004-09-13,35.88,36.07,35.32,35.59,10070600,17.80 +2004-09-10,35.66,36.23,35.46,35.87,11714800,17.93 +2004-09-09,36.10,36.30,35.28,35.70,16476400,17.85 +2004-09-08,35.70,36.57,35.68,36.35,12268800,18.17 +2004-09-07,35.40,36.19,35.23,35.76,10784200,17.88 +2004-09-03,35.01,35.92,35.01,35.23,10481000,17.61 +2004-09-02,35.50,35.81,34.83,35.66,14511600,17.83 +2004-09-01,34.30,35.99,34.19,35.86,18418800,17.93 +2004-08-31,34.07,34.95,34.00,34.49,13448600,17.25 +2004-08-30,34.00,34.72,33.96,34.12,7790800,17.06 +2004-08-27,34.68,34.76,34.00,34.35,13886200,17.17 +2004-08-26,33.04,35.18,32.74,34.66,34137800,17.33 +2004-08-25,31.87,33.15,31.73,33.05,18057800,16.52 +2004-08-24,31.26,31.95,31.19,31.95,13362000,15.98 +2004-08-23,30.86,31.27,30.60,31.08,9095000,15.54 +2004-08-20,30.71,30.99,30.49,30.80,11313600,15.40 +2004-08-19,31.51,31.86,30.36,30.71,13890000,15.35 +2004-08-18,30.51,31.85,30.49,31.74,13023400,15.87 +2004-08-17,30.58,31.13,30.35,30.87,11536400,15.44 +2004-08-16,31.00,31.72,30.64,30.78,15559800,15.39 +2004-08-13,30.60,31.28,30.40,30.84,11716000,15.42 +2004-08-12,30.45,30.85,30.28,30.37,8078600,15.19 +2004-08-11,31.10,31.13,30.26,31.01,11514000,15.51 +2004-08-10,30.39,31.54,30.35,31.52,12537000,15.76 +2004-08-09,29.85,30.45,29.81,30.30,10387400,15.15 +2004-08-06,30.90,31.10,29.70,29.78,17581800,14.89 +2004-08-05,31.81,32.30,31.25,31.39,8732200,15.69 +2004-08-04,31.19,32.12,31.17,31.79,9874600,15.90 +2004-08-03,31.45,31.72,31.15,31.29,7558200,15.65 +2004-08-02,31.18,32.20,31.13,31.58,13039000,15.79 +2004-07-30,32.65,33.00,32.00,32.34,8679400,16.17 +2004-07-29,32.47,32.82,32.13,32.64,7934200,16.32 +2004-07-28,32.31,32.41,31.16,32.27,10180400,16.14 +2004-07-27,31.80,32.75,31.57,32.43,15178800,16.22 +2004-07-26,30.85,31.45,30.78,31.26,14069000,15.63 +2004-07-23,31.53,31.75,30.48,30.70,9770400,15.35 +2004-07-22,31.25,31.73,31.06,31.68,11932800,15.84 +2004-07-21,32.42,32.71,31.34,31.62,10759200,15.81 +2004-07-20,31.95,32.20,31.55,32.20,11562400,16.10 +2004-07-19,32.01,32.22,31.66,31.97,19041800,15.98 +2004-07-16,32.80,32.92,32.12,32.20,17442200,16.10 +2004-07-15,32.66,33.63,32.11,32.93,63133000,16.47 +2004-07-14,28.86,29.97,28.74,29.58,29850000,14.79 +2004-07-13,29.25,29.60,29.02,29.22,11292000,14.61 +2004-07-12,30.02,30.04,28.93,29.14,18272200,14.57 +2004-07-09,30.27,30.50,30.03,30.03,7459400,15.02 +2004-07-08,30.13,30.68,29.95,30.14,8335000,15.07 +2004-07-07,30.85,31.36,30.13,30.39,14214000,15.19 +2004-07-06,31.27,31.42,30.80,30.95,12463600,15.48 +2004-07-02,30.48,31.18,29.73,31.08,32524400,15.54 +2004-07-01,32.10,32.48,31.90,32.30,12212200,16.15 +2004-06-30,32.56,32.97,31.89,32.54,13323000,16.27 +2004-06-29,32.07,32.99,31.41,32.50,21091200,16.25 +2004-06-28,34.18,34.19,32.21,32.49,18610600,16.25 +2004-06-25,33.07,33.70,33.00,33.70,11551000,16.85 +2004-06-24,33.51,33.70,32.98,33.18,9018400,16.59 +2004-06-23,33.00,33.83,32.89,33.70,13959600,16.85 +2004-06-22,32.30,33.09,32.29,33.00,12875400,16.50 +2004-06-21,33.12,33.50,32.12,32.33,13936200,16.17 +2004-06-18,32.66,33.41,32.43,32.91,14509000,16.45 +2004-06-17,32.56,33.13,32.21,32.81,19690000,16.41 +2004-06-16,30.66,33.32,30.53,32.74,32487200,16.37 +2004-06-15,30.54,31.14,30.26,30.69,15879800,15.35 +2004-06-14,30.65,30.68,29.50,30.12,8713800,15.06 +2004-06-10,30.20,30.97,30.20,30.74,9199200,15.37 +2004-06-09,30.09,30.71,30.00,30.20,12471600,15.10 +2004-06-08,29.99,30.44,29.83,30.35,14843600,15.18 +2004-06-07,29.04,29.98,28.81,29.81,10567000,14.90 +2004-06-04,28.56,29.25,28.51,28.78,14254000,14.39 +2004-06-03,28.72,28.99,28.29,28.40,8961800,14.20 +2004-06-02,28.03,29.17,27.80,28.92,11382600,14.46 +2004-06-01,27.79,28.20,27.61,28.06,6504800,14.03 +2004-05-28,28.08,28.27,27.80,28.06,5204200,14.03 +2004-05-27,28.46,28.60,27.82,28.17,8427600,14.09 +2004-05-26,28.33,28.78,28.00,28.51,11506000,14.26 +2004-05-25,27.50,28.51,27.29,28.41,11427800,14.20 +2004-05-24,27.29,27.90,27.11,27.34,8414400,13.67 +2004-05-21,26.90,27.20,26.73,27.11,6424800,13.56 +2004-05-20,26.63,27.00,26.47,26.71,7010600,13.35 +2004-05-19,27.40,27.50,26.42,26.47,13414000,13.23 +2004-05-18,26.97,27.29,26.80,27.06,7359400,13.53 +2004-05-17,26.70,27.06,26.36,26.64,10730200,13.32 +2004-05-14,27.25,27.32,26.45,27.06,9207200,13.53 +2004-05-13,27.10,27.72,26.90,27.19,8209000,13.60 +2004-05-12,26.79,27.34,26.24,27.30,8765000,13.65 +2004-05-11,26.40,27.19,26.40,27.14,10899000,13.57 +2004-05-10,26.27,26.60,25.94,26.28,8927800,13.14 +2004-05-07,26.55,27.57,26.55,26.67,14965600,13.34 +2004-05-06,26.40,26.75,25.90,26.58,9412800,13.29 +2004-05-05,26.20,26.75,25.96,26.65,8503800,13.32 +2004-05-04,25.97,26.55,25.50,26.14,9999400,13.07 +2004-05-03,26.00,26.33,25.74,26.07,10629800,13.03 +2004-04-30,26.71,26.96,25.49,25.78,16660800,12.89 +2004-04-29,26.45,27.00,25.98,26.77,16456800,13.39 +2004-04-28,26.82,27.01,26.34,26.45,8256000,13.23 +2004-04-27,27.24,27.44,26.69,26.94,10138000,13.47 +2004-04-26,27.58,27.64,27.00,27.13,8254600,13.56 +2004-04-23,27.70,28.00,27.05,27.70,11279600,13.85 +2004-04-22,27.56,28.18,27.11,27.78,12306600,13.89 +2004-04-21,27.60,28.12,27.37,27.73,11638400,13.86 +2004-04-20,28.21,28.41,27.56,27.73,12661400,13.86 +2004-04-19,28.12,28.75,27.83,28.35,25441200,14.18 +2004-04-16,29.15,29.31,28.50,29.18,14390400,14.59 +2004-04-15,28.82,29.58,28.16,29.30,62908800,14.65 +2004-04-14,26.74,27.07,26.31,26.64,22847600,13.32 +2004-04-13,27.98,28.03,26.84,26.93,15585600,13.47 +2004-04-12,27.50,28.10,27.49,28.04,8233600,14.02 +2004-04-08,27.88,28.00,27.20,27.53,8604200,13.77 +2004-04-07,27.61,27.70,26.92,27.31,9111400,13.65 +2004-04-06,27.71,28.15,27.43,27.83,9214000,13.91 +2004-04-05,27.48,28.37,27.44,28.32,13774000,14.16 +2004-04-02,27.75,27.93,27.23,27.50,9802800,13.75 +2004-04-01,26.89,27.27,26.62,27.11,11369000,13.56 +2004-03-31,27.92,27.98,26.95,27.04,13956200,13.52 +2004-03-30,27.74,27.95,27.34,27.92,12845600,13.96 +2004-03-29,27.37,27.99,27.20,27.91,12526000,13.95 +2004-03-26,27.00,27.36,26.91,27.04,14996200,13.52 +2004-03-25,26.14,26.91,25.89,26.87,20230200,13.44 +2004-03-24,25.27,25.75,25.27,25.50,15293400,12.75 +2004-03-23,25.88,26.00,25.22,25.29,13768400,12.65 +2004-03-22,25.37,26.17,25.25,25.86,14965400,12.93 +2004-03-19,25.56,26.94,25.54,25.86,14592000,12.93 +2004-03-18,25.94,26.06,25.59,25.67,11467200,12.84 +2004-03-17,25.96,26.38,25.78,26.19,14694000,13.10 +2004-03-16,26.55,26.61,25.39,25.82,21622600,12.91 +2004-03-15,27.03,27.35,26.26,26.45,17204200,13.23 +2004-03-12,27.32,27.78,27.17,27.56,11758000,13.78 +2004-03-11,27.27,28.04,27.09,27.15,21280400,13.57 +2004-03-10,27.04,28.14,26.94,27.68,35963000,13.84 +2004-03-09,25.90,27.23,25.75,27.10,22084400,13.55 +2004-03-08,26.62,26.79,25.80,26.00,18674000,13.00 +2004-03-05,24.95,27.49,24.90,26.74,55021400,13.37 +2004-03-04,23.93,25.22,23.91,25.16,23579400,12.58 +2004-03-03,23.60,24.19,23.60,23.92,8040400,11.96 +2004-03-02,24.00,24.10,23.77,23.81,9167400,11.90 +2004-03-01,24.10,24.30,23.87,24.02,11488600,12.01 +2004-02-27,22.96,24.02,22.95,23.92,16744200,11.96 +2004-02-26,22.88,23.18,22.80,23.04,7086000,11.52 +2004-02-25,22.28,22.90,22.21,22.81,9867000,11.40 +2004-02-24,22.14,22.74,22.00,22.36,9252000,11.18 +2004-02-23,22.34,22.46,21.89,22.19,6931400,11.10 +2004-02-20,22.50,22.51,22.21,22.40,9914400,11.20 +2004-02-19,23.33,23.64,22.41,22.47,11538600,11.23 +2004-02-18,23.18,23.44,23.05,23.26,5058400,11.63 +2004-02-17,23.10,23.49,23.10,23.16,6105600,11.58 +2004-02-13,23.85,24.10,22.83,23.00,11285000,11.50 +2004-02-12,23.61,23.99,23.60,23.73,6571000,11.86 +2004-02-11,23.09,23.87,23.05,23.80,12448000,11.90 +2004-02-10,22.62,23.12,22.44,22.98,9119400,11.49 +2004-02-09,22.62,22.86,22.50,22.67,6723600,11.34 +2004-02-06,22.45,22.89,22.40,22.71,6905000,11.35 +2004-02-05,21.82,22.91,21.81,22.42,12601600,11.21 +2004-02-04,22.00,22.09,21.70,21.79,10912600,10.90 +2004-02-03,22.30,22.40,22.00,22.26,6457600,11.13 +2004-02-02,22.46,22.81,22.08,22.32,10265400,11.16 +2004-01-30,22.65,22.87,22.42,22.56,6617800,11.28 +2004-01-29,22.63,22.80,22.19,22.68,7596400,11.34 +2004-01-28,22.84,23.38,22.41,22.52,9835800,11.26 +2004-01-27,23.04,23.25,22.80,23.07,10966800,11.53 +2004-01-26,22.46,23.06,22.43,23.01,9688200,11.51 +2004-01-23,22.42,22.74,22.25,22.56,8113200,11.28 +2004-01-22,22.56,22.83,22.18,22.18,7321600,11.09 +2004-01-21,22.70,22.97,22.43,22.61,8095000,11.31 +2004-01-20,22.67,22.80,22.25,22.73,11283800,11.36 +2004-01-16,22.89,23.04,22.61,22.72,13315000,11.36 +2004-01-15,22.91,23.40,22.50,22.85,36364600,11.43 +2004-01-14,24.40,24.54,23.78,24.20,22144400,12.10 +2004-01-13,24.70,24.84,23.86,24.12,24250600,12.06 +2004-01-12,23.25,24.00,23.10,23.73,17412400,11.86 +2004-01-09,23.23,24.13,22.79,23.00,15266400,11.50 +2004-01-08,22.84,23.73,22.65,23.36,16439400,11.68 +2004-01-07,22.10,22.83,21.93,22.59,20959800,11.30 +2004-01-06,22.25,22.42,21.71,22.09,18191000,11.05 +2004-01-05,21.42,22.39,21.42,22.17,14107800,11.09 +2004-01-02,21.55,21.75,21.18,21.28,5165800,10.64 +2003-12-31,21.35,21.53,21.18,21.37,6230400,10.69 +2003-12-30,21.18,21.50,21.15,21.28,7316200,10.64 +2003-12-29,20.91,21.16,20.86,21.15,8337800,10.57 +2003-12-26,20.35,20.91,20.34,20.78,3703400,10.39 +2003-12-24,19.72,20.59,19.65,20.41,6338400,10.20 +2003-12-23,19.92,19.95,19.60,19.81,11017800,9.90 +2003-12-22,19.65,19.89,19.25,19.85,13466600,9.93 +2003-12-19,20.19,20.42,19.62,19.70,16198600,9.85 +2003-12-18,19.90,20.18,19.90,20.04,11818400,10.02 +2003-12-17,20.08,20.13,19.79,19.88,9795000,9.94 +2003-12-16,20.19,20.49,20.01,20.12,13355600,10.06 +2003-12-15,21.49,21.49,20.07,20.17,13889600,10.09 +2003-12-12,21.32,21.32,20.70,20.89,6881200,10.44 +2003-12-11,20.25,21.34,20.21,21.21,6540600,10.60 +2003-12-10,20.45,20.61,19.96,20.38,9690600,10.19 +2003-12-09,21.17,21.25,20.40,20.45,4826600,10.23 +2003-12-08,20.78,21.08,20.41,21.05,5294200,10.52 +2003-12-05,20.90,21.15,20.73,20.85,6649200,10.43 +2003-12-04,20.94,21.17,20.77,21.15,6355000,10.57 +2003-12-03,21.54,21.84,20.96,21.03,6832000,10.52 +2003-12-02,21.60,21.90,21.41,21.54,7332000,10.77 +2003-12-01,21.04,21.85,21.00,21.71,12912000,10.85 +2003-11-28,20.78,21.07,20.52,20.91,2717800,10.45 +2003-11-26,20.89,21.15,20.25,20.72,8754600,10.36 +2003-11-25,21.23,21.25,20.61,20.68,9594800,10.34 +2003-11-24,20.50,21.27,20.45,21.15,13636600,10.57 +2003-11-21,20.34,20.58,19.85,20.28,8637000,10.14 +2003-11-20,20.10,21.08,20.10,20.38,8556800,10.19 +2003-11-19,20.56,20.65,20.26,20.42,12306600,10.21 +2003-11-18,21.21,21.34,20.35,20.41,9542600,10.20 +2003-11-17,21.35,21.37,20.95,21.13,8152000,10.56 +2003-11-14,22.48,22.61,21.28,21.46,8466000,10.73 +2003-11-13,22.07,22.56,21.92,22.42,7599000,11.21 +2003-11-12,21.48,22.72,21.48,22.33,10714400,11.16 +2003-11-11,21.90,22.02,21.48,21.54,7681200,10.77 +2003-11-10,22.45,22.65,21.84,21.90,8367000,10.95 +2003-11-07,23.19,23.24,22.45,22.50,7505200,11.25 +2003-11-06,22.91,23.15,22.65,23.12,14181200,11.56 +2003-11-05,22.82,23.13,22.47,23.03,11516800,11.52 +2003-11-04,23.07,23.10,22.59,22.91,8901200,11.45 +2003-11-03,22.83,23.30,22.78,23.15,10815800,11.57 +2003-10-31,23.30,23.35,22.78,22.89,7791200,11.44 +2003-10-30,23.99,24.00,22.87,23.09,9305600,11.55 +2003-10-29,23.51,23.90,23.34,23.69,9538600,11.85 +2003-10-28,22.56,23.77,22.40,23.72,8989800,11.86 +2003-10-27,22.75,22.89,22.49,22.60,5786200,11.30 +2003-10-24,22.56,22.85,22.23,22.60,7852000,11.30 +2003-10-23,22.73,23.15,22.59,22.99,5900400,11.49 +2003-10-22,22.94,23.20,22.68,22.76,5771400,11.38 +2003-10-21,23.31,23.40,22.75,23.18,6302200,11.59 +2003-10-20,22.60,23.34,22.38,23.22,9969000,11.61 +2003-10-17,23.38,23.49,22.43,22.75,12850400,11.38 +2003-10-16,23.80,23.84,22.41,23.25,34845800,11.62 +2003-10-15,24.85,25.01,24.58,24.82,21789400,12.41 +2003-10-14,24.32,24.74,24.19,24.55,9836400,12.27 +2003-10-13,23.73,24.41,23.72,24.35,9995200,12.18 +2003-10-10,23.50,23.81,23.37,23.68,6244200,11.84 +2003-10-09,23.30,23.67,22.79,23.45,12419600,11.73 +2003-10-08,23.25,23.54,22.73,23.06,15309600,11.53 +2003-10-07,22.05,23.41,21.91,23.22,14934800,11.61 +2003-10-06,21.67,22.33,21.58,22.29,9583200,11.15 +2003-10-03,20.99,21.86,20.88,21.69,10700000,10.85 +2003-10-02,20.80,20.80,20.28,20.57,7287800,10.28 +2003-10-01,20.71,21.10,20.19,20.79,8432600,10.40 +2003-09-30,21.09,21.22,20.44,20.72,10193800,10.36 +2003-09-29,21.49,21.67,20.65,21.30,13060800,10.65 +2003-09-26,20.30,21.70,20.15,20.69,12401800,10.35 +2003-09-25,21.34,21.37,20.25,20.43,20513600,10.22 +2003-09-24,22.21,22.31,21.08,21.32,10760200,10.66 +2003-09-23,22.02,22.46,21.88,22.43,4730400,11.22 +2003-09-22,22.18,22.50,21.92,22.08,6422200,11.04 +2003-09-19,22.88,23.05,22.43,22.58,7355600,11.29 +2003-09-18,22.10,22.99,21.95,22.88,9032400,11.44 +2003-09-17,22.37,22.38,21.85,22.12,10335600,11.06 +2003-09-16,22.21,22.69,22.20,22.36,9607400,11.18 +2003-09-15,22.81,22.90,22.12,22.21,8101600,11.10 +2003-09-12,22.51,23.14,22.31,23.10,6428200,11.55 +2003-09-11,22.25,22.79,22.10,22.56,7631600,11.28 +2003-09-10,22.25,22.61,22.11,22.18,8031800,11.09 +2003-09-09,22.53,22.67,22.12,22.37,6441800,11.19 +2003-09-08,22.48,22.79,22.47,22.74,5973000,11.37 +2003-09-05,22.73,23.15,22.41,22.50,8576200,11.25 +2003-09-04,23.16,23.25,22.77,22.83,7135000,11.41 +2003-09-03,22.80,23.32,22.76,22.95,9601000,11.48 +2003-09-02,22.66,22.90,22.40,22.85,8647600,11.43 +2003-08-29,22.20,22.85,22.05,22.61,9398400,11.31 +2003-08-28,21.33,22.22,21.33,22.19,11415200,11.10 +2003-08-27,20.91,21.48,20.66,21.48,8060800,10.74 +2003-08-26,20.75,21.07,20.35,21.05,5891400,10.52 +2003-08-25,20.78,20.91,20.49,20.86,4920800,10.43 +2003-08-22,21.81,22.00,20.64,20.88,8938000,10.44 +2003-08-21,21.03,21.71,20.95,21.68,9118800,10.84 +2003-08-20,20.18,21.27,20.14,21.01,9757600,10.51 +2003-08-19,20.37,20.45,20.00,20.32,4774600,10.16 +2003-08-18,19.86,20.41,19.72,20.34,6884800,10.17 +2003-08-15,20.02,20.07,19.66,19.71,4495200,9.85 +2003-08-14,20.21,20.33,19.94,19.97,6885000,9.98 +2003-08-13,19.86,20.34,19.58,20.18,10146400,10.09 +2003-08-12,19.76,19.80,19.46,19.70,5872800,9.85 +2003-08-11,19.82,19.93,19.51,19.66,4901000,9.83 +2003-08-08,20.11,20.13,19.60,19.64,4916400,9.82 +2003-08-07,19.73,20.09,19.42,19.93,6227800,9.97 +2003-08-06,20.06,20.17,19.50,19.63,8766600,9.81 +2003-08-05,21.35,21.40,20.10,20.38,8908600,10.19 +2003-08-04,20.53,21.50,20.28,21.21,8218400,10.60 +2003-08-01,21.00,21.27,20.64,20.73,5343000,10.36 +2003-07-31,20.74,21.35,20.57,... [truncated message content] |
From: <md...@us...> - 2008-02-25 20:27:53
|
Revision: 4989 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4989&view=rev Author: mdboom Date: 2008-02-25 12:27:51 -0800 (Mon, 25 Feb 2008) Log Message: ----------- Merged revisions 4947-4950,4952-4988 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r4948 | jrevans | 2008-02-08 12:56:12 -0500 (Fri, 08 Feb 2008) | 2 lines Removed a reference to nx, replaced with numpy. ........ r4977 | jdh2358 | 2008-02-19 10:26:56 -0500 (Tue, 19 Feb 2008) | 2 lines added rec_groupby and rec2txt ........ r4987 | mdboom | 2008-02-25 15:21:39 -0500 (Mon, 25 Feb 2008) | 2 lines [ 1901410 ] Newbie bug report: clip_on set to False actually True ........ Modified Paths: -------------- trunk/matplotlib/examples/units/units_sample.py trunk/matplotlib/lib/matplotlib/axes.py trunk/matplotlib/lib/matplotlib/mlab.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-4946,4951 + /branches/v0_91_maint:1-4988 Modified: trunk/matplotlib/examples/units/units_sample.py =================================================================== --- trunk/matplotlib/examples/units/units_sample.py 2008-02-25 20:24:33 UTC (rev 4988) +++ trunk/matplotlib/examples/units/units_sample.py 2008-02-25 20:27:51 UTC (rev 4989) @@ -8,9 +8,10 @@ """ from basic_units import cm, inch -from pylab import figure, show, nx +from pylab import figure, show +import numpy -cms = cm *nx.arange(0, 10, 2) +cms = cm *numpy.arange(0, 10, 2) fig = figure() Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008-02-25 20:24:33 UTC (rev 4988) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008-02-25 20:27:51 UTC (rev 4989) @@ -2381,7 +2381,7 @@ #if t.get_clip_on(): t.set_clip_box(self.bbox) - if kwargs.has_key('clip_on'): t.set_clip_path(self.axesPatch) + if kwargs.has_key('clip_on'): t.set_clip_box(self.bbox) return t text.__doc__ = cbook.dedent(text.__doc__) % martist.kwdocd @@ -4188,6 +4188,7 @@ Finally, marker can be (verts, 0), verts is a sequence of (x,y) vertices for a custom scatter symbol. +<<<<<<< .working numsides is the number of sides @@ -4201,6 +4202,9 @@ Finally, marker can be (verts, 0), verts is a sequence of (x,y) vertices for a custom scatter symbol. +======= + +>>>>>>> .merge-right.r4987 s is a size argument in points squared. Any or all of x, y, s, and c may be masked arrays, in which Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-02-25 20:24:33 UTC (rev 4988) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-02-25 20:27:51 UTC (rev 4989) @@ -46,6 +46,7 @@ = record array helper functions = * rec2txt : pretty print a record array + * rec2txt : pretty print a record array * rec2csv : store record array in CSV file * csv2rec : import record array from CSV file with type inspection * rec_append_field : add a field/array to record array @@ -2113,6 +2114,139 @@ return newrec.view(npy.recarray) +def rec_groupby(r, groupby, stats): + """ + r is a numpy record array + + groupby is a sequence of record array attribute names that + together form the grouping key. eg ('date', 'productcode') + + stats is a sequence of (attr, func, outname) which will call x = + func(attr) and assign x to the record array output with attribute + outname. + Eg, stats = ( ('sales', len, 'numsales'), ('sales', npy.mean, 'avgsale') ) + + return record array has dtype names for each attribute name in in + the the 'groupby' argument, with the associated group values, and + for each outname name in the stats argument, with the associated + stat summary output + """ + # build a dictionary from groupby keys-> list of indices into r with + # those keys + rowd = dict() + for i, row in enumerate(r): + key = tuple([row[attr] for attr in groupby]) + rowd.setdefault(key, []).append(i) + + # sort the output by groupby keys + keys = rowd.keys() + keys.sort() + + rows = [] + for key in keys: + row = list(key) + # get the indices for this groupby key + ind = rowd[key] + thisr = r[ind] + # call each stat function for this groupby slice + row.extend([func(thisr[attr]) for attr, func, outname in stats]) + rows.append(row) + + # build the output record array with groupby and outname attributes + attrs, funcs, outnames = zip(*stats) + names = list(groupby) + names.extend(outnames) + return npy.rec.fromrecords(rows, names=names) + + + +def rec_summarize(r, summaryfuncs): + """ + r is a numpy record array + + summaryfuncs is a list of (attr, func, outname) which will + apply codefunc to the the array r[attr] and assign the output + to a new attribute name outname. The returned record array is + identical to r, with extra arrays for each element in summaryfuncs + """ + + names = list(r.dtype.names) + arrays = [r[name] for name in names] + + for attr, func, outname in summaryfuncs: + names.append(outname) + arrays.append(npy.asarray(func(r[attr]))) + + return npy.rec.fromarrays(arrays, names=names) + +def rec_join(key, r1, r2): + """ + join record arrays r1 and r2 on key; key is a tuple of field + names. if r1 and r2 have equal values on all the keys in the key + tuple, then their fields will be merged into a new record array + containing the intersection of the fields of r1 and r2 + """ + + for name in key: + if name not in r1.dtype.names: + raise ValueError('r1 does not have key field %s'%name) + if name not in r2.dtype.names: + raise ValueError('r2 does not have key field %s'%name) + + def makekey(row): + return tuple([row[name] for name in key]) + + r1d = dict([(makekey(row),i) for i,row in enumerate(r1)]) + r2d = dict([(makekey(row),i) for i,row in enumerate(r2)]) + + r1keys = set(r1d.keys()) + r2keys = set(r2d.keys()) + + keys = r1keys & r2keys + + r1ind = npy.array([r1d[k] for k in keys]) + r2ind = npy.array([r2d[k] for k in keys]) + + # Make sure that the output rows have the same relative order as r1 + sortind = r1ind.argsort() + + r1 = r1[r1ind[sortind]] + r2 = r2[r2ind[sortind]] + + r2 = rec_drop_fields(r2, r1.dtype.names) + + + def key_desc(name): + 'if name is a string key, use the larger size of r1 or r2 before merging' + dt1 = r1.dtype[name] + if dt1.type != npy.string_: + return (name, dt1.descr[0][1]) + + dt2 = r1.dtype[name] + assert dt2==dt1 + if dt1.num>dt2.num: + return (name, dt1.descr[0][1]) + else: + return (name, dt2.descr[0][1]) + + + + keydesc = [key_desc(name) for name in key] + + newdtype = npy.dtype(keydesc + + [desc for desc in r1.dtype.descr if desc[0] not in key ] + + [desc for desc in r2.dtype.descr if desc[0] not in key ] ) + + + newrec = npy.empty(len(r1), dtype=newdtype) + for field in r1.dtype.names: + newrec[field] = r1[field] + + for field in r2.dtype.names: + newrec[field] = r2[field] + + return newrec.view(npy.recarray) + def csv2rec(fname, comments='#', skiprows=0, checkrows=0, delimiter=',', converterd=None, names=None, missing=None): """ @@ -2499,7 +2633,6 @@ return text - def rec2csv(r, fname, delimiter=',', formatd=None): """ Save the data from numpy record array r into a comma/space/tab This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ds...@us...> - 2008-03-10 13:44:52
|
Revision: 4996 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4996&view=rev Author: dsdale Date: 2008-03-10 06:44:28 -0700 (Mon, 10 Mar 2008) Log Message: ----------- workaround a blitting bug in backend_qt4agg Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/examples/animation_blit_qt4.py trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-10 12:46:12 UTC (rev 4995) +++ trunk/matplotlib/CHANGELOG 2008-03-10 13:44:28 UTC (rev 4996) @@ -1,3 +1,7 @@ +2008-03-10 Workaround a bug in backend_qt4agg's blitting due to a + buffer width/bbox width mismatch in _backend_agg's + copy_from_bbox - DSD + 2008-02-16 Added some new rec array functionality to mlab (rec_summarize, rec2txt and rec_groupby). See examples/rec_groupby_demo.py. Thanks to Tim M for rec2txt. Modified: trunk/matplotlib/examples/animation_blit_qt4.py =================================================================== --- trunk/matplotlib/examples/animation_blit_qt4.py 2008-03-10 12:46:12 UTC (rev 4995) +++ trunk/matplotlib/examples/animation_blit_qt4.py 2008-03-10 13:44:28 UTC (rev 4996) @@ -22,7 +22,7 @@ # destroyed first and avoids a possible exception when the user clicks # on the window's close box. QtCore.QObject.__init__(self, self.canvas) - + self.cnt = 0 # create the initial line @@ -34,7 +34,7 @@ def timerEvent(self, evt): # See if the size has changed since last time round. - current_size = self.ax.bbox.width(), self.ax.bbox.height() + current_size = self.ax.bbox.width, self.ax.bbox.height if self.old_size != current_size: self.old_size = current_size Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-03-10 12:46:12 UTC (rev 4995) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-03-10 13:44:28 UTC (rev 4996) @@ -112,6 +112,7 @@ l, b, r, t = bbox.extents w = int(r) - int(l) h = int(t) - int(b) + t = int(b) + h reg = self.copy_from_bbox(bbox) stringBuffer = reg.to_string() qImage = QtGui.QImage(stringBuffer, w, h, QtGui.QImage.Format_ARGB32) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2008-03-10 15:19:02
|
Revision: 4999 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4999&view=rev Author: mdboom Date: 2008-03-10 08:18:49 -0700 (Mon, 10 Mar 2008) Log Message: ----------- Merged revisions 4989-4998 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r4991 | mdboom | 2008-02-29 09:04:48 -0500 (Fri, 29 Feb 2008) | 2 lines Fix classic Wx toolbar pan and zoom functions (Thanks Jeff Peery) ........ r4997 | mdboom | 2008-03-10 11:05:30 -0400 (Mon, 10 Mar 2008) | 1 line Fix bug where Wx figures were getting shortened by the height of the status bar (Thanks, Gary Ruben) ........ r4998 | mdboom | 2008-03-10 11:06:25 -0400 (Mon, 10 Mar 2008) | 4 lines Correcting range of subfigure values. This is a backport of 4913 from the trunk: "fixed a bug where annotations w/ arrows were not getting the figure instance set properly" ........ Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_wx.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-4988 + /branches/v0_91_maint:1-4998 Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-10 15:06:25 UTC (rev 4998) +++ trunk/matplotlib/CHANGELOG 2008-03-10 15:18:49 UTC (rev 4999) @@ -2,6 +2,9 @@ buffer width/bbox width mismatch in _backend_agg's copy_from_bbox - DSD +2008-02-29 Fix class Wx toolbar pan and zoom functions (Thanks Jeff + Peery) - MGD + 2008-02-16 Added some new rec array functionality to mlab (rec_summarize, rec2txt and rec_groupby). See examples/rec_groupby_demo.py. Thanks to Tim M for rec2txt. Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-03-10 15:06:25 UTC (rev 4998) +++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008-03-10 15:18:49 UTC (rev 4999) @@ -938,7 +938,7 @@ def print_bmp(self, filename, *args, **kwargs): return self._print_image(filename, wx.BITMAP_TYPE_BMP, *args, **kwargs) - + def print_jpeg(self, filename, *args, **kwargs): return self._print_image(filename, wx.BITMAP_TYPE_JPEG, *args, **kwargs) print_jpg = print_jpeg @@ -948,14 +948,14 @@ def print_png(self, filename, *args, **kwargs): return self._print_image(filename, wx.BITMAP_TYPE_PNG, *args, **kwargs) - + def print_tiff(self, filename, *args, **kwargs): return self._print_image(filename, wx.BITMAP_TYPE_TIF, *args, **kwargs) print_tif = print_tiff def print_xpm(self, filename, *args, **kwargs): return self._print_image(filename, wx.BITMAP_TYPE_XPM, *args, **kwargs) - + def _print_image(self, filename, filetype, *args, **kwargs): origBitmap = self.bitmap @@ -994,7 +994,7 @@ def get_default_filetype(self): return 'png' - + def realize(self): """ This method will be called when the system is ready to draw, @@ -1230,9 +1230,9 @@ DEBUG_MSG("__init__()", 1, self) self.num = num - self.canvas = self.get_canvas(fig) statbar = StatusBarWx(self) self.SetStatusBar(statbar) + self.canvas = self.get_canvas(fig) self.sizer =wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.canvas, 1, wx.TOP | wx.LEFT | wx.EXPAND) # By adding toolbar in sizer, we are able to put it at the bottom @@ -1829,28 +1829,28 @@ DEBUG_MSG("panx()", 1, self) for a in self._active: - a.panx(direction) + a.xaxis.pan(direction) self.canvas.draw() self.canvas.Refresh(eraseBackground=False) def pany(self, direction): DEBUG_MSG("pany()", 1, self) for a in self._active: - a.pany(direction) + a.yaxis.pan(direction) self.canvas.draw() self.canvas.Refresh(eraseBackground=False) def zoomx(self, in_out): DEBUG_MSG("zoomx()", 1, self) for a in self._active: - a.zoomx(in_out) + a.xaxis.zoom(in_out) self.canvas.draw() self.canvas.Refresh(eraseBackground=False) def zoomy(self, in_out): DEBUG_MSG("zoomy()", 1, self) for a in self._active: - a.zoomy(in_out) + a.yaxis.zoom(in_out) self.canvas.draw() self.canvas.Refresh(eraseBackground=False) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ds...@us...> - 2008-03-14 12:22:32
|
Revision: 5002 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5002&view=rev Author: dsdale Date: 2008-03-14 05:22:28 -0700 (Fri, 14 Mar 2008) Log Message: ----------- removed an unnecessary call to FigureCanvasAgg.draw in the qt*agg backends Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/examples/embedding_in_wx.py trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-13 16:27:17 UTC (rev 5001) +++ trunk/matplotlib/CHANGELOG 2008-03-14 12:22:28 UTC (rev 5002) @@ -1,3 +1,7 @@ +2008-03-14 Removed an apparently unnecessary call to + FigureCanvasAgg.draw in backend_qt*agg. Thanks to Ted + Drain - DSD + 2008-03-10 Workaround a bug in backend_qt4agg's blitting due to a buffer width/bbox width mismatch in _backend_agg's copy_from_bbox - DSD Modified: trunk/matplotlib/examples/embedding_in_wx.py =================================================================== --- trunk/matplotlib/examples/embedding_in_wx.py 2008-03-13 16:27:17 UTC (rev 5001) +++ trunk/matplotlib/examples/embedding_in_wx.py 2008-03-14 12:22:28 UTC (rev 5002) @@ -37,8 +37,6 @@ figure resizable or not. """ -import matplotlib -matplotlib.use('WX') from matplotlib.backends.backend_wx import Toolbar, FigureCanvasWx,\ FigureManager Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-03-13 16:27:17 UTC (rev 5001) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-03-14 12:22:28 UTC (rev 5002) @@ -130,7 +130,6 @@ if DEBUG: print "FigureCanvasQtAgg.draw", self self.replot = True - FigureCanvasAgg.draw(self) self.update() def blit(self, bbox=None): Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py 2008-03-13 16:27:17 UTC (rev 5001) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py 2008-03-14 12:22:28 UTC (rev 5002) @@ -135,7 +135,6 @@ if DEBUG: print "FigureCanvasQtAgg.draw", self self.replot = True - FigureCanvasAgg.draw(self) self.repaint( False ) def blit(self, bbox=None): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2008-03-19 18:07:59
|
Revision: 5007 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5007&view=rev Author: sameerd Date: 2008-03-19 11:07:49 -0700 (Wed, 19 Mar 2008) Log Message: ----------- Added outerjoin, lefjoin and rightjoin support to rec_join Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Added Paths: ----------- trunk/matplotlib/examples/rec_join_demo.py Added: trunk/matplotlib/examples/rec_join_demo.py =================================================================== --- trunk/matplotlib/examples/rec_join_demo.py (rev 0) +++ trunk/matplotlib/examples/rec_join_demo.py 2008-03-19 18:07:49 UTC (rev 5007) @@ -0,0 +1,27 @@ +import numpy as np +import matplotlib.mlab as mlab + + +r = mlab.csv2rec('data/aapl.csv') +r.sort() +r1 = r[-10:] + +# Create a new array +r2 = np.empty(12, dtype=[('date', '|O4'), ('high', np.float), + ('marker', np.float)]) +r2 = r2.view(np.recarray) +r2.date = r.date[-17:-5] +r2.high = r.high[-17:-5] +r2.marker = np.arange(12) + +print "r1:" +print mlab.rec2txt(r1) +print "r2:" +print mlab.rec2txt(r2) + +defaults = {'marker':-1, 'close':np.NaN, 'low':-4444.} + +for s in ('inner', 'outer', 'leftouter'): + rec = mlab.rec_join(['date', 'high'], r1, r2, + jointype=s, defaults=defaults) + print "\n%sjoin :\n%s" % (s, mlab.rec2txt(rec)) Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-03-19 14:36:57 UTC (rev 5006) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-03-19 18:07:49 UTC (rev 5007) @@ -2044,12 +2044,19 @@ return npy.rec.fromarrays(arrays, names=names) -def rec_join(key, r1, r2): + +def rec_join(key, r1, r2, jointype='inner', defaults=None): """ join record arrays r1 and r2 on key; key is a tuple of field names. if r1 and r2 have equal values on all the keys in the key tuple, then their fields will be merged into a new record array containing the intersection of the fields of r1 and r2 + + The jointype keyword can be 'inner', 'outer', 'leftouter'. + To do a rightouter join just reverse r1 and r2. + + The defaults keyword is a dictionary filled with + {column_name:default_value} pairs. """ for name in key: @@ -2067,17 +2074,22 @@ r1keys = set(r1d.keys()) r2keys = set(r2d.keys()) - keys = r1keys & r2keys + common_keys = r1keys & r2keys - r1ind = npy.array([r1d[k] for k in keys]) - r2ind = npy.array([r2d[k] for k in keys]) + r1ind = npy.array([r1d[k] for k in common_keys]) + r2ind = npy.array([r2d[k] for k in common_keys]) - # Make sure that the output rows have the same relative order as r1 - sortind = r1ind.argsort() + common_len = len(common_keys) + left_len = right_len = 0 + if jointype == "outer" or jointype == "leftouter": + left_keys = r1keys.difference(r2keys) + left_ind = npy.array([r1d[k] for k in left_keys]) + left_len = len(left_ind) + if jointype == "outer": + right_keys = r2keys.difference(r1keys) + right_ind = npy.array([r2d[k] for k in right_keys]) + right_len = len(right_ind) - r1 = r1[r1ind[sortind]] - r2 = r2[r2ind[sortind]] - r2 = rec_drop_fields(r2, r1.dtype.names) @@ -2103,13 +2115,31 @@ [desc for desc in r2.dtype.descr if desc[0] not in key ] ) - newrec = npy.empty(len(r1), dtype=newdtype) + newrec = npy.empty(common_len + left_len + right_len, dtype=newdtype) + + if jointype != 'inner' and defaults is not None: # fill in the defaults enmasse + newrec_fields = newrec.dtype.fields.keys() + for k, v in defaults.items(): + if k in newrec_fields: + newrec[k] = v + for field in r1.dtype.names: - newrec[field] = r1[field] + newrec[field][:common_len] = r1[field][r1ind] + if jointype == "outer" or jointype == "leftouter": + newrec[field][common_len:(common_len+left_len)] = r1[field][left_ind] for field in r2.dtype.names: - newrec[field] = r2[field] + newrec[field][:common_len] = r2[field][r2ind] + if jointype == "outer": + newrec[field][-right_len:] = r2[field][right_ind[right_ind.argsort()]] + # sort newrec using the same order as r1 + sort_indices = r1ind.copy() + if jointype == "outer" or jointype == "leftouter": + sort_indices = npy.append(sort_indices, left_ind) + newrec[:(common_len+left_len)] = newrec[sort_indices.argsort()] + + return newrec.view(npy.recarray) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ef...@us...> - 2008-03-20 03:31:00
|
Revision: 5008 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5008&view=rev Author: efiring Date: 2008-03-19 20:30:58 -0700 (Wed, 19 Mar 2008) Log Message: ----------- Updated the importation of numpy.ma; numerix.npyma is obsolete. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/CODING_GUIDE trunk/matplotlib/examples/color_by_yvalue.py trunk/matplotlib/examples/contourf_demo.py trunk/matplotlib/examples/dynamic_collection.py trunk/matplotlib/examples/image_masked.py trunk/matplotlib/examples/masked_demo.py trunk/matplotlib/examples/quadmesh_demo.py trunk/matplotlib/examples/scatter_masked.py trunk/matplotlib/examples/step_demo.py trunk/matplotlib/lib/matplotlib/axes.py trunk/matplotlib/lib/matplotlib/cm.py trunk/matplotlib/lib/matplotlib/colors.py trunk/matplotlib/lib/matplotlib/contour.py trunk/matplotlib/lib/matplotlib/image.py trunk/matplotlib/lib/matplotlib/lines.py trunk/matplotlib/lib/matplotlib/path.py trunk/matplotlib/lib/matplotlib/pylab.py trunk/matplotlib/lib/matplotlib/quiver.py trunk/matplotlib/lib/matplotlib/scale.py trunk/matplotlib/lib/matplotlib/transforms.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/CHANGELOG 2008-03-20 03:30:58 UTC (rev 5008) @@ -1,7 +1,14 @@ -2008-03-14 Removed an apparently unnecessary call to - FigureCanvasAgg.draw in backend_qt*agg. Thanks to Ted - Drain - DSD +2008-03-19 Changed ma import statements to "from numpy import ma"; + this should work with past and future versions of + numpy, whereas "import numpy.ma as ma" will work only + with numpy >= 1.05, and "import numerix.npyma as ma" + is obsolete now that maskedarray is replacing the + earlier implementation, as of numpy 1.05. +2008-03-14 Removed an apparently unnecessary call to + FigureCanvasAgg.draw in backend_qt*agg. Thanks to Ted + Drain - DSD + 2008-03-10 Workaround a bug in backend_qt4agg's blitting due to a buffer width/bbox width mismatch in _backend_agg's copy_from_bbox - DSD Modified: trunk/matplotlib/CODING_GUIDE =================================================================== --- trunk/matplotlib/CODING_GUIDE 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/CODING_GUIDE 2008-03-20 03:30:58 UTC (rev 5008) @@ -12,7 +12,7 @@ # checking out the main src svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/matplotlib matplotlib --username=youruser --password=yourpass -# branch checkouts, eg the transforms branch +# branch checkouts, eg the transforms branch svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/transforms transbranch == Committing changes == @@ -47,15 +47,18 @@ import numpy as npy a = npy.array([1,2,3]) - + For masked arrays, use: - import matplotlib.numerix.npyma as ma + from numpy import ma - (This is needed to support the maskedarray module as an - alternative to the original numpy ma module; eventually, - the maskedarray implementation is likely to replace the - ma implementation.) + (The earlier recommendation, 'import matplotlib.numerix.npyma as ma', + was needed temporarily during the development of the maskedarray + implementation as a separate package. As of numpy 1.05, it + replaces the old implementation. + Note: "from numpy import ma" works with numpy < 1.05 *and* with + numpy >= 1.05. "import numpy.ma as ma" works *only* with + numpy >= 1.05, so for now we must not use it.) For matplotlib main module, use: @@ -64,8 +67,8 @@ For matplotlib modules (or any other modules), use: - import matplotlib.cbook as cbook - + import matplotlib.cbook as cbook + if cbook.iterable(z): pass @@ -125,7 +128,7 @@ (add-hook 'python-mode-hook (lambda () - (add-hook 'local-write-file-hooks 'delete-trailing-whitespace))) + (add-hook 'local-write-file-hooks 'delete-trailing-whitespace))) Modified: trunk/matplotlib/examples/color_by_yvalue.py =================================================================== --- trunk/matplotlib/examples/color_by_yvalue.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/color_by_yvalue.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -1,6 +1,6 @@ # use masked arrays to plot a line with different colors by y-value -import matplotlib.numerix.npyma as ma from numpy import logical_or, arange, sin, pi +from numpy import ma from matplotlib.pyplot import plot, show t = arange(0.0, 2.0, 0.01) Modified: trunk/matplotlib/examples/contourf_demo.py =================================================================== --- trunk/matplotlib/examples/contourf_demo.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/contourf_demo.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -1,6 +1,5 @@ #!/usr/bin/env python from pylab import * -import matplotlib.numerix.npyma as ma origin = 'lower' #origin = 'upper' Modified: trunk/matplotlib/examples/dynamic_collection.py =================================================================== --- trunk/matplotlib/examples/dynamic_collection.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/dynamic_collection.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -12,8 +12,8 @@ facecolors = [cm.jet(0.5)] collection = RegularPolyCollection( - fig.dpi, - numsides=5, # a pentagon + #fig.dpi, + 5, # a pentagon rotation=0, sizes=(50,), facecolors = facecolors, Modified: trunk/matplotlib/examples/image_masked.py =================================================================== --- trunk/matplotlib/examples/image_masked.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/image_masked.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -6,7 +6,7 @@ ''' from pylab import * -import matplotlib.numerix.npyma as ma +from numpy import ma import matplotlib.colors as colors delta = 0.025 Modified: trunk/matplotlib/examples/masked_demo.py =================================================================== --- trunk/matplotlib/examples/masked_demo.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/masked_demo.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -6,7 +6,6 @@ break the line at the data gaps. ''' -import matplotlib.numerix.npyma as ma from pylab import * x = ma.arange(0, 2*pi, 0.02) Modified: trunk/matplotlib/examples/quadmesh_demo.py =================================================================== --- trunk/matplotlib/examples/quadmesh_demo.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/quadmesh_demo.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -9,7 +9,7 @@ import numpy as npy from matplotlib.pyplot import figure, show, savefig from matplotlib import cm, colors -from matplotlib.numerix import npyma as ma +from numpy import ma n = 56 x = npy.linspace(-1.5,1.5,n) Modified: trunk/matplotlib/examples/scatter_masked.py =================================================================== --- trunk/matplotlib/examples/scatter_masked.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/scatter_masked.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -1,6 +1,5 @@ #!/usr/bin/env python from pylab import * -import matplotlib.numerix.npyma as ma N = 100 r0 = 0.6 Modified: trunk/matplotlib/examples/step_demo.py =================================================================== --- trunk/matplotlib/examples/step_demo.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/examples/step_demo.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -1,5 +1,5 @@ import numpy as npy -from matplotlib.numerix import npyma as ma +from numpy import ma from matplotlib.pyplot import step, legend, xlim, ylim, show x = npy.arange(1, 7, 0.4) Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -2,9 +2,8 @@ import math, warnings, new import numpy as npy +from numpy import ma -import matplotlib.numerix.npyma as ma - import matplotlib rcParams = matplotlib.rcParams Modified: trunk/matplotlib/lib/matplotlib/cm.py =================================================================== --- trunk/matplotlib/lib/matplotlib/cm.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/cm.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -3,9 +3,9 @@ """ import numpy as npy +from numpy import ma import matplotlib as mpl import matplotlib.colors as colors -import matplotlib.numerix.npyma as ma import matplotlib.cbook as cbook from matplotlib._cm import * Modified: trunk/matplotlib/lib/matplotlib/colors.py =================================================================== --- trunk/matplotlib/lib/matplotlib/colors.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/colors.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -35,7 +35,7 @@ """ import re import numpy as npy -import matplotlib.numerix.npyma as ma +from numpy import ma import matplotlib.cbook as cbook cnames = { Modified: trunk/matplotlib/lib/matplotlib/contour.py =================================================================== --- trunk/matplotlib/lib/matplotlib/contour.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/contour.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -6,7 +6,7 @@ import warnings import matplotlib as mpl import numpy as npy -import matplotlib.numerix.npyma as ma +from numpy import ma import matplotlib._cntr as _cntr import matplotlib.path as path import matplotlib.ticker as ticker Modified: trunk/matplotlib/lib/matplotlib/image.py =================================================================== --- trunk/matplotlib/lib/matplotlib/image.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/image.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -7,9 +7,8 @@ import os, warnings import numpy as npy +from numpy import ma -import matplotlib.numerix.npyma as ma - from matplotlib import rcParams from matplotlib import artist as martist from matplotlib import colors as mcolors Modified: trunk/matplotlib/lib/matplotlib/lines.py =================================================================== --- trunk/matplotlib/lib/matplotlib/lines.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/lines.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -7,8 +7,7 @@ from __future__ import division import numpy as npy - -from matplotlib.numerix import npyma as ma +from numpy import ma from matplotlib import verbose import artist from artist import Artist Modified: trunk/matplotlib/lib/matplotlib/path.py =================================================================== --- trunk/matplotlib/lib/matplotlib/path.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/path.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -8,7 +8,7 @@ from weakref import WeakValueDictionary import numpy as npy -from matplotlib.numerix import npyma as ma +from numpy import ma from matplotlib._path import point_in_path, get_path_extents, \ point_in_path_collection, get_path_collection_extents, \ Modified: trunk/matplotlib/lib/matplotlib/pylab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/pylab.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/pylab.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -198,12 +198,7 @@ silent_list, iterable, enumerate, dedent import numpy as npy -# The masked array namespace is brought in as ma; getting -# this from numerix allows one to select either numpy.ma or -# Pierre G-M's maskedarray implementation, which may -# replace the present numpy.ma implementation in a future -# numpy release. -from matplotlib.numerix import npyma as ma +from numpy import ma from matplotlib import mpl # pulls in most modules Modified: trunk/matplotlib/lib/matplotlib/quiver.py =================================================================== --- trunk/matplotlib/lib/matplotlib/quiver.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/quiver.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -143,7 +143,7 @@ """ import numpy as npy -import matplotlib.numerix.npyma as ma +from numpy import ma import matplotlib.collections as collections import matplotlib.transforms as transforms import matplotlib.text as text Modified: trunk/matplotlib/lib/matplotlib/scale.py =================================================================== --- trunk/matplotlib/lib/matplotlib/scale.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/scale.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -1,6 +1,6 @@ import textwrap import numpy as npy -from matplotlib.numerix import npyma as ma +from numpy import ma MaskedArray = ma.MaskedArray from cbook import dedent Modified: trunk/matplotlib/lib/matplotlib/transforms.py =================================================================== --- trunk/matplotlib/lib/matplotlib/transforms.py 2008-03-19 18:07:49 UTC (rev 5007) +++ trunk/matplotlib/lib/matplotlib/transforms.py 2008-03-20 03:30:58 UTC (rev 5008) @@ -24,7 +24,7 @@ """ import numpy as npy -from matplotlib.numerix import npyma as ma +from numpy import ma from matplotlib._path import affine_transform from numpy.linalg import inv This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mme...@us...> - 2008-03-20 20:30:49
|
Revision: 5010 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5010&view=rev Author: mmetz_bn Date: 2008-03-20 13:30:44 -0700 (Thu, 20 Mar 2008) Log Message: ----------- Bugfix in ContourSet._process_linestyles Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/contour.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-20 16:57:41 UTC (rev 5009) +++ trunk/matplotlib/CHANGELOG 2008-03-20 20:30:44 UTC (rev 5010) @@ -1,3 +1,6 @@ +2008-03-20 Fixed a minor bug in ContourSet._process_linestyles when + len(linestyles)==Nlev - MM + 2008-03-19 Changed ma import statements to "from numpy import ma"; this should work with past and future versions of numpy, whereas "import numpy.ma as ma" will work only Modified: trunk/matplotlib/lib/matplotlib/contour.py =================================================================== --- trunk/matplotlib/lib/matplotlib/contour.py 2008-03-20 16:57:41 UTC (rev 5009) +++ trunk/matplotlib/lib/matplotlib/contour.py 2008-03-20 20:30:44 UTC (rev 5010) @@ -713,7 +713,7 @@ else: if cbook.is_string_like(linestyles): tlinestyles = [linestyles] * Nlev - elif cbook.iterable(linestyles) and len(linestyles) < Nlev: + elif cbook.iterable(linestyles) and len(linestyles) <= Nlev: tlinestyles = list(linestyles) * int(npy.ceil(Nlev/len(linestyles))) return tlinestyles This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2008-03-21 13:26:39
|
Revision: 5012 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5012&view=rev Author: mdboom Date: 2008-03-21 06:26:27 -0700 (Fri, 21 Mar 2008) Log Message: ----------- Merged revisions 4999-5011 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r5011 | mdboom | 2008-03-21 09:10:20 -0400 (Fri, 21 Mar 2008) | 3 lines Bugfix: [ 1912719 ] TypeError in Exception __get_configdir() Thanks, Andrea Tomasini ........ Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/__init__.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-4998 + /branches/v0_91_maint:1-5011 Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2008-03-21 13:10:20 UTC (rev 5011) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2008-03-21 13:26:27 UTC (rev 5012) @@ -397,7 +397,7 @@ if os.path.exists(p): if not _is_writable_dir(p): - raise RuntimeError("'%s' is not a writable dir; you must set %s/.matplotlib to be a writable dir. You can also set environment variable MPLCONFIGDIR to any writable directory where you want matplotlib data stored "%h) + raise RuntimeError("'%s' is not a writable dir; you must set %s/.matplotlib to be a writable dir. You can also set environment variable MPLCONFIGDIR to any writable directory where you want matplotlib data stored "% (h, h)) else: if not _is_writable_dir(h): raise RuntimeError("Failed to create %s/.matplotlib; consider setting MPLCONFIGDIR to a writable directory for matplotlib configuration data"%h) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jo...@us...> - 2008-03-23 17:47:54
|
Revision: 5019 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5019&view=rev Author: jouni Date: 2008-03-23 10:47:51 -0700 (Sun, 23 Mar 2008) Log Message: ----------- Merged revisions 5018 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r5018 | jouni | 2008-03-23 19:44:11 +0200 (Sun, 23 Mar 2008) | 3 lines Fix a pdf backend bug which sometimes caused the outermost gsave to not be balanced with a grestore. ........ Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-5011 + /branches/v0_91_maint:1-5011,5018 Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-23 17:44:11 UTC (rev 5018) +++ trunk/matplotlib/CHANGELOG 2008-03-23 17:47:51 UTC (rev 5019) @@ -1,3 +1,6 @@ +2008-03-23 Fix a pdf backend bug which sometimes caused the outermost + gsave to not be balanced with a grestore. - JKS + 2008-03-20 Fixed a minor bug in ContourSet._process_linestyles when len(linestyles)==Nlev - MM Modified: trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py 2008-03-23 17:44:11 UTC (rev 5018) +++ trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py 2008-03-23 17:47:51 UTC (rev 5019) @@ -1174,7 +1174,7 @@ self.tex_font_map = None def finalize(self): - self.gc.finalize() + self.file.output(*self.gc.finalize()) def check_gc(self, gc, fillcolor=None): orig_fill = gc._fillcolor This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ds...@us...> - 2008-03-24 12:58:53
|
Revision: 5020 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5020&view=rev Author: dsdale Date: 2008-03-24 05:58:47 -0700 (Mon, 24 Mar 2008) Log Message: ----------- removed an unnecessary call to draw in the qt backends mouseReleaseEvent Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_qt.py trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-23 17:47:51 UTC (rev 5019) +++ trunk/matplotlib/CHANGELOG 2008-03-24 12:58:47 UTC (rev 5020) @@ -1,3 +1,6 @@ +2008-03-24 Removed an unnecessary call to draw() in the backend_qt* + mouseReleaseEvent. Thanks to Ted Drain - DSD + 2008-03-23 Fix a pdf backend bug which sometimes caused the outermost gsave to not be balanced with a grestore. - JKS Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2008-03-23 17:47:51 UTC (rev 5019) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2008-03-24 12:58:47 UTC (rev 5020) @@ -121,7 +121,6 @@ button = self.buttond[event.button()] FigureCanvasBase.button_release_event( self, x, y, button ) if DEBUG: print 'button released' - self.draw() def keyPressEvent( self, event ): key = self._get_key( event ) Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-03-23 17:47:51 UTC (rev 5019) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-03-24 12:58:47 UTC (rev 5020) @@ -120,7 +120,6 @@ button = self.buttond[event.button()] FigureCanvasBase.button_release_event( self, x, y, button ) if DEBUG: print 'button released' - self.draw() def keyPressEvent( self, event ): key = self._get_key( event ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2008-03-26 14:43:33
|
Revision: 5024 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5024&view=rev Author: mdboom Date: 2008-03-26 07:43:20 -0700 (Wed, 26 Mar 2008) Log Message: ----------- Merged revisions 5012-5017,5019-5023 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r5013 | mmetz_bn | 2008-03-21 13:19:37 -0400 (Fri, 21 Mar 2008) | 1 line Bugfix in ContourSet._process_linestyles ........ r5021 | mdboom | 2008-03-26 10:30:18 -0400 (Wed, 26 Mar 2008) | 3 lines Change character ids so they are a hash on the path data itself. (To fix Kaushik Ghose's copy-and-paste in Inkscape bug). ........ r5022 | mdboom | 2008-03-26 10:33:35 -0400 (Wed, 26 Mar 2008) | 3 lines Change character ids so they are a hash on the path data itself. (To fix Kaushik Ghose's copy-and-paste in Inkscape bug). ........ r5023 | mdboom | 2008-03-26 10:35:50 -0400 (Wed, 26 Mar 2008) | 2 lines Oops in last commit. ........ Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_svg.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-5011,5018 + /branches/v0_91_maint:1-5023 Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-26 14:35:50 UTC (rev 5023) +++ trunk/matplotlib/CHANGELOG 2008-03-26 14:43:20 UTC (rev 5024) @@ -1,3 +1,6 @@ +2008-03-26 Fix SVG backend bug that prevents copying and pasting in + Inkscape (thanks Kaushik Ghose) - MGD + 2008-03-24 Removed an unnecessary call to draw() in the backend_qt* mouseReleaseEvent. Thanks to Ted Drain - DSD Modified: trunk/matplotlib/lib/matplotlib/backends/backend_svg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_svg.py 2008-03-26 14:35:50 UTC (rev 5023) +++ trunk/matplotlib/lib/matplotlib/backends/backend_svg.py 2008-03-26 14:43:20 UTC (rev 5024) @@ -1,6 +1,6 @@ from __future__ import division -import os, codecs, base64, tempfile, urllib, gzip +import os, codecs, base64, tempfile, urllib, gzip, md5 from matplotlib import verbose, __version__, rcParams from matplotlib.backend_bases import RendererBase, GraphicsContextBase,\ @@ -125,7 +125,7 @@ id = self._clipd.get(path) if id is None: - id = 'p%x' % len(self._clipd) + id = 'p%s' % md5.new(path).hexdigest() self._svgwriter.write('<defs>\n <clipPath id="%s">\n' % id) self._svgwriter.write(path) self._svgwriter.write('\n </clipPath>\n</defs>') @@ -189,7 +189,7 @@ key = self._convert_path(marker_path, marker_trans + Affine2D().scale(1.0, -1.0)) name = self._markers.get(key) if name is None: - name = 'm%x' % len(self._markers) + name = 'm%s' % md5.new(key).hexdigest() write('<defs><path id="%s" d="%s"/></defs>\n' % (name, key)) self._markers[key] = name @@ -209,9 +209,10 @@ write('<defs>\n') for i, (path, transform) in enumerate(self._iter_collection_raw_paths( master_transform, paths, all_transforms)): - name = 'coll%x_%x' % (self._path_collection_id, i) transform = Affine2D(transform.get_matrix()).scale(1.0, -1.0) d = self._convert_path(path, transform) + name = 'coll%x_%x_%s' % (self._path_collection_id, i, + md5.new(d).hexdigest()) write('<path id="%s" d="%s"/>\n' % (name, d)) path_codes.append(name) write('</defs>\n') @@ -398,8 +399,9 @@ if step[0] != 4: currx, curry = step[-2], -step[-1] - char_num = 'c%x' % len(self._char_defs) - path_element = '<path id="%s" d="%s"/>\n' % (char_num, ''.join(path_data)) + path_data = ''.join(path_data) + char_num = 'c_%s' % md5.new(path_data).hexdigest() + path_element = '<symbol id="%s"><path d="%s"/></symbol>\n' % (char_num, ''.join(path_data)) self._char_defs[char_id] = char_num return path_element This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2008-03-27 14:42:29
|
Revision: 5026 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5026&view=rev Author: mdboom Date: 2008-03-27 07:42:26 -0700 (Thu, 27 Mar 2008) Log Message: ----------- Merged revisions 5024-5025 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r5025 | mdboom | 2008-03-27 10:26:19 -0400 (Thu, 27 Mar 2008) | 4 lines Fix saving to Unicode filenames in Agg backend. Fix Qt and Qt4 GUI's to support saving to Unicode filenames in file save dialogs. Wx, Gtk and Tk GUIs already appear to work. ........ Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_agg.py trunk/matplotlib/lib/matplotlib/backends/backend_qt.py trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py trunk/matplotlib/src/_backend_agg.cpp Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-5023 + /branches/v0_91_maint:1-5025 Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-27 14:26:19 UTC (rev 5025) +++ trunk/matplotlib/CHANGELOG 2008-03-27 14:42:26 UTC (rev 5026) @@ -1,3 +1,7 @@ +2008-03-27 Fix saving to Unicode filenames with Agg backend + (other backends appear to already work...) + (Thanks, Christopher Barker) - MGD + 2008-03-26 Fix SVG backend bug that prevents copying and pasting in Inkscape (thanks Kaushik Ghose) - MGD Modified: trunk/matplotlib/lib/matplotlib/backends/backend_agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2008-03-27 14:26:19 UTC (rev 5025) +++ trunk/matplotlib/lib/matplotlib/backends/backend_agg.py 2008-03-27 14:42:26 UTC (rev 5026) @@ -286,19 +286,23 @@ def get_default_filetype(self): return 'png' - def print_raw(self, filename, *args, **kwargs): + def print_raw(self, filename_or_obj, *args, **kwargs): FigureCanvasAgg.draw(self) + renderer = self.get_renderer() original_dpi = renderer.dpi renderer.dpi = self.figure.dpi - renderer._renderer.write_rgba(str(filename)) + if type(filename_or_obj) in (str, unicode): + filename_or_obj = open(filename_or_obj, 'w') + renderer._renderer.write_rgba(filename_or_obj) renderer.dpi = original_dpi print_rgba = print_raw - def print_png(self, filename, *args, **kwargs): + def print_png(self, filename_or_obj, *args, **kwargs): FigureCanvasAgg.draw(self) renderer = self.get_renderer() original_dpi = renderer.dpi renderer.dpi = self.figure.dpi - filename = str(filename) # until we figure out unicode handling - renderer._renderer.write_png(filename, self.figure.dpi) + if type(filename_or_obj) in (str, unicode): + filename_or_obj = open(filename_or_obj, 'w') + self.get_renderer()._renderer.write_png(filename_or_obj, self.figure.dpi) renderer.dpi = original_dpi Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2008-03-27 14:26:19 UTC (rev 5025) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt.py 2008-03-27 14:42:26 UTC (rev 5026) @@ -427,7 +427,7 @@ selectedFilter) if fname: try: - self.canvas.print_figure( fname.latin1() ) + self.canvas.print_figure( unicode(fname) ) except Exception, e: qt.QMessageBox.critical( self, "Error saving file", str(e), Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-03-27 14:26:19 UTC (rev 5025) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4.py 2008-03-27 14:42:26 UTC (rev 5026) @@ -376,7 +376,7 @@ self, "Choose a filename to save to", start, filters, selectedFilter) if fname: try: - self.canvas.print_figure( str(fname.toLatin1()) ) + self.canvas.print_figure( unicode(fname) ) except Exception, e: QtGui.QMessageBox.critical( self, "Error saving file", str(e), Modified: trunk/matplotlib/src/_backend_agg.cpp =================================================================== --- trunk/matplotlib/src/_backend_agg.cpp 2008-03-27 14:26:19 UTC (rev 5025) +++ trunk/matplotlib/src/_backend_agg.cpp 2008-03-27 14:42:26 UTC (rev 5026) @@ -1286,12 +1286,33 @@ _VERBOSE("RendererAgg::write_rgba"); args.verify_length(1); - std::string fname = Py::String(args[0]); - std::ofstream of2( fname.c_str(), std::ios::binary|std::ios::out); - for (size_t i=0; i<NUMBYTES; i++) { - of2.write((char*)&(pixBuffer[i]), sizeof(char)); + FILE *fp = NULL; + bool close_file = false; + Py::Object py_fileobj = Py::Object(args[0]); + if (py_fileobj.isString()) { + std::string fileName = Py::String(py_fileobj); + const char *file_name = fileName.c_str(); + if ((fp = fopen(file_name, "wb")) == NULL) + throw Py::RuntimeError( Printf("Could not open file %s", file_name).str() ); + fwrite(pixBuffer, 1, NUMBYTES, fp); + close_file = true; + fclose(fp); + } else if (PyFile_CheckExact(py_fileobj.ptr())) { + fp = PyFile_AsFile(py_fileobj.ptr()); + fwrite(pixBuffer, 1, NUMBYTES, fp); + } else { + PyObject* write_method = PyObject_GetAttrString(py_fileobj.ptr(), "write"); + if (!(write_method && PyCallable_Check(write_method))) { + Py_XDECREF(write_method); + throw Py::TypeError("Object does not appear to be a 8-bit string path or a Python file-like object"); + } + + PyObject_CallFunction(write_method, "s#", pixBuffer, NUMBYTES); + + Py_XDECREF(write_method); } + return Py::Object(); } @@ -1326,18 +1347,22 @@ args.verify_length(1, 2); FILE *fp = NULL; + bool close_file = false; Py::Object py_fileobj = Py::Object(args[0]); if (py_fileobj.isString()) { std::string fileName = Py::String(py_fileobj); const char *file_name = fileName.c_str(); if ((fp = fopen(file_name, "wb")) == NULL) throw Py::RuntimeError( Printf("Could not open file %s", file_name).str() ); + close_file = true; + } else if (PyFile_CheckExact(py_fileobj.ptr())) { + fp = PyFile_AsFile(py_fileobj.ptr()); } else { PyObject* write_method = PyObject_GetAttrString(py_fileobj.ptr(), "write"); if (!(write_method && PyCallable_Check(write_method))) { Py_XDECREF(write_method); - throw Py::TypeError("Object does not appear to be a path or a Python file-like object"); + throw Py::TypeError("Object does not appear to be a 8-bit string path or a Python file-like object"); } Py_XDECREF(write_method); } @@ -1406,7 +1431,7 @@ */ } catch (...) { - if (fp) fclose(fp); + if (fp && close_file) fclose(fp); delete [] row_pointers; if (png_ptr && info_ptr) png_destroy_write_struct(&png_ptr, &info_ptr); throw; @@ -1414,7 +1439,7 @@ png_destroy_write_struct(&png_ptr, &info_ptr); delete [] row_pointers; - if (fp) fclose(fp); + if (fp && close_file) fclose(fp); return Py::Object(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mme...@us...> - 2008-04-02 13:34:01
|
Revision: 5027 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5027&view=rev Author: mmetz_bn Date: 2008-04-02 06:33:21 -0700 (Wed, 02 Apr 2008) Log Message: ----------- added linestyle patch Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/cbook.py trunk/matplotlib/lib/matplotlib/collections.py trunk/matplotlib/lib/matplotlib/lines.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-03-27 14:42:26 UTC (rev 5026) +++ trunk/matplotlib/CHANGELOG 2008-04-02 13:33:21 UTC (rev 5027) @@ -1,3 +1,6 @@ +2008-04-02 Allow to use both linestyle definition arguments, '-' and + 'solid' etc. in plots/collections - MM + 2008-03-27 Fix saving to Unicode filenames with Agg backend (other backends appear to already work...) (Thanks, Christopher Barker) - MGD Modified: trunk/matplotlib/lib/matplotlib/cbook.py =================================================================== --- trunk/matplotlib/lib/matplotlib/cbook.py 2008-03-27 14:42:26 UTC (rev 5026) +++ trunk/matplotlib/lib/matplotlib/cbook.py 2008-04-02 13:33:21 UTC (rev 5027) @@ -1068,6 +1068,16 @@ return result + +# a dict to cross-map linestyle arguments +_linestyles = [('-', 'solid'), + ('--', 'dashed'), + ('-.', 'dashdot'), + (':', 'dotted')] + +ls_mapper = dict(_linestyles) +ls_mapper.update([(ls[1], ls[0]) for ls in _linestyles]) + if __name__=='__main__': assert( allequal([1,1,1]) ) assert(not allequal([1,1,0]) ) Modified: trunk/matplotlib/lib/matplotlib/collections.py =================================================================== --- trunk/matplotlib/lib/matplotlib/collections.py 2008-03-27 14:42:26 UTC (rev 5026) +++ trunk/matplotlib/lib/matplotlib/collections.py 2008-04-02 13:33:21 UTC (rev 5027) @@ -228,14 +228,25 @@ ACCEPTS: ['solid' | 'dashed', 'dashdot', 'dotted' | (offset, on-off-dash-seq) ] """ try: + dashd = backend_bases.GraphicsContextBase.dashd if cbook.is_string_like(ls): - dashes = [backend_bases.GraphicsContextBase.dashd[ls]] + if dashd.has_key(ls): + dashes = [dashd[ls]] + elif cbook.ls_mapper.has_key(ls): + dashes = [dashd[cbook.ls_mapper[ls]]] + else: + raise ValueError() elif cbook.iterable(ls): try: dashes = [] for x in ls: if cbook.is_string_like(x): - dashes.append(backend_bases.GraphicsContextBase.dashd[ls]) + if dashd.has_key(x): + dashes.append(dashd[x]) + elif cbook.ls_mapper.has_key(x): + dashes.append(dashd[cbook.ls_mapper[x]]) + else: + raise ValueError() elif cbook.iterator(x) and len(x) == 2: dashes.append(x) else: Modified: trunk/matplotlib/lib/matplotlib/lines.py =================================================================== --- trunk/matplotlib/lib/matplotlib/lines.py 2008-03-27 14:42:26 UTC (rev 5026) +++ trunk/matplotlib/lib/matplotlib/lines.py 2008-04-02 13:33:21 UTC (rev 5027) @@ -11,7 +11,7 @@ from matplotlib import verbose import artist from artist import Artist -from cbook import iterable, is_string_like, is_numlike +from cbook import iterable, is_string_like, is_numlike, ls_mapper from colors import colorConverter from path import Path from transforms import Affine2D, Bbox, TransformedPath @@ -598,7 +598,10 @@ ACCEPTS: [ '-' | '--' | '-.' | ':' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post' | 'None' | ' ' | '' ] """ if linestyle not in self._lineStyles: - verbose.report('Unrecognized line style %s, %s' % + if ls_mapper.has_key(linestyle): + linestyle = ls_mapper[linestyle] + else: + verbose.report('Unrecognized line style %s, %s' % (linestyle, type(linestyle))) if linestyle in [' ','']: linestyle = 'None' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ef...@us...> - 2008-04-07 18:48:12
|
Revision: 5030 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5030&view=rev Author: efiring Date: 2008-04-07 11:48:02 -0700 (Mon, 07 Apr 2008) Log Message: ----------- improve color validation in rc handling Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/rcsetup.py trunk/matplotlib/matplotlibrc.template Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-04-04 15:02:48 UTC (rev 5029) +++ trunk/matplotlib/CHANGELOG 2008-04-07 18:48:02 UTC (rev 5030) @@ -1,6 +1,9 @@ +2008-04-07 Improve color validation in rc handling, suggested + by Lev Givon - EF + 2008-04-02 Allow to use both linestyle definition arguments, '-' and - 'solid' etc. in plots/collections - MM - + 'solid' etc. in plots/collections - MM + 2008-03-27 Fix saving to Unicode filenames with Agg backend (other backends appear to already work...) (Thanks, Christopher Barker) - MGD Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py =================================================================== --- trunk/matplotlib/lib/matplotlib/rcsetup.py 2008-04-04 15:02:48 UTC (rev 5029) +++ trunk/matplotlib/lib/matplotlib/rcsetup.py 2008-04-07 18:48:02 UTC (rev 5030) @@ -10,6 +10,7 @@ import os from matplotlib.fontconfig_pattern import parse_fontconfig_pattern +from matplotlib.colors import is_color_like class ValidateInStrings: def __init__(self, key, valid, ignorecase=False): @@ -122,37 +123,35 @@ return [int(val) for val in s] - def validate_color(s): 'return a valid color arg' - if s.lower() == 'none': return 'None' - if len(s)==1 and s.isalpha(): return s - if s.find(',')>=0: # looks like an rgb + if s.lower() == 'none': + return 'None' + if is_color_like(s): + return s + stmp = '#' + s + if is_color_like(stmp): + return stmp + # If it is still valid, it must be a tuple. + colorarg = s + msg = '' + if s.find(',')>=0: # get rid of grouping symbols - s = ''.join([ c for c in s if c.isdigit() or c=='.' or c==',']) - vals = s.split(',') + stmp = ''.join([ c for c in s if c.isdigit() or c=='.' or c==',']) + vals = stmp.split(',') if len(vals)!=3: - raise ValueError('Color tuples must be length 3') + msg = '\nColor tuples must be length 3' + else: + try: + colorarg = [float(val) for val in vals] + except ValueError: + msg = '\nCould not convert all entries to floats' - try: return [float(val) for val in vals] - except ValueError: - raise ValueError('Could not convert all entries "%s" to floats'%s) + if not msg and is_color_like(colorarg): + return colorarg - if s.replace('.', '').isdigit(): # looks like scalar (grayscale) - return s + raise ValueError('%s does not look like a color arg%s'%(s, msg)) - if len(s)==6 and s.isalnum(): # looks like hex - return '#' + s - - if len(s)==7 and s.startswith('#') and s[1:].isalnum(): - return s - - if s.isalpha(): - #assuming a color name, hold on - return s - - raise ValueError('%s does not look like color arg'%s) - def validate_stringlist(s): 'return a list' if type(s) is str: Modified: trunk/matplotlib/matplotlibrc.template =================================================================== --- trunk/matplotlib/matplotlibrc.template 2008-04-04 15:02:48 UTC (rev 5029) +++ trunk/matplotlib/matplotlibrc.template 2008-04-07 18:48:02 UTC (rev 5030) @@ -19,7 +19,7 @@ # Colors: for the color values below, you can either use # - a matplotlib color string, such as r, k, or b # - an rgb tuple, such as (1.0, 0.5, 0.0) -# - a hex string, such as ff00ff (no '#' symbol) +# - a hex string, such as ff00ff or #ff00ff # - a scalar grayscale intensity such as 0.75 # - a legal html color name, eg red, blue, darkslategray This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ds...@us...> - 2008-04-11 15:16:40
|
Revision: 5037 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5037&view=rev Author: dsdale Date: 2008-04-11 08:16:16 -0700 (Fri, 11 Apr 2008) Log Message: ----------- revert commits 5002, 5031 Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-04-11 14:56:32 UTC (rev 5036) +++ trunk/matplotlib/CHANGELOG 2008-04-11 15:16:16 UTC (rev 5037) @@ -1,3 +1,9 @@ +2008-04-11 Revert commits 5002 and 5031, which were intended to + avoid an unnecessary call to draw(). 5002 broke saving + figures before show(). 5031 fixed the problem created in + 5002, but broke interactive plotting. Unnecessary call to + draw still needs resolution - DSD + 2008-04-07 Improve color validation in rc handling, suggested by Lev Givon - EF Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-04-11 14:56:32 UTC (rev 5036) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-04-11 15:16:16 UTC (rev 5037) @@ -131,6 +131,7 @@ if DEBUG: print "FigureCanvasQtAgg.draw", self self.replot = True FigureCanvasAgg.draw(self) + self.update() def blit(self, bbox=None): """ Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py 2008-04-11 14:56:32 UTC (rev 5036) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qtagg.py 2008-04-11 15:16:16 UTC (rev 5037) @@ -136,6 +136,7 @@ if DEBUG: print "FigureCanvasQtAgg.draw", self self.replot = True FigureCanvasAgg.draw(self) + self.repaint(False) def blit(self, bbox=None): """ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <md...@us...> - 2008-04-11 15:32:08
|
Revision: 5039 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5039&view=rev Author: mdboom Date: 2008-04-11 08:32:03 -0700 (Fri, 11 Apr 2008) Log Message: ----------- Merged revisions 5026-5038 via svnmerge from https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/branches/v0_91_maint ........ r5028 | jdh2358 | 2008-04-03 11:24:20 -0400 (Thu, 03 Apr 2008) | 1 line some small fixes to excel tools ........ r5032 | jrevans | 2008-04-07 18:26:21 -0400 (Mon, 07 Apr 2008) | 2 lines Fixed the double draw bug. ........ r5033 | jdh2358 | 2008-04-09 14:54:54 -0400 (Wed, 09 Apr 2008) | 1 line small fix for vlines w/ len 1 args ........ r5038 | mdboom | 2008-04-11 11:24:57 -0400 (Fri, 11 Apr 2008) | 3 lines Fixing global font rcParam setting after initialization time (thanks to Lev Givon and Eric Firing for finding this) ........ Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/examples/rec_groupby_demo.py trunk/matplotlib/lib/matplotlib/axes.py trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py trunk/matplotlib/lib/matplotlib/font_manager.py trunk/matplotlib/lib/matplotlib/mlab.py Property Changed: ---------------- trunk/matplotlib/ Property changes on: trunk/matplotlib ___________________________________________________________________ Name: svnmerge-integrated - /branches/v0_91_maint:1-5025 + /branches/v0_91_maint:1-5038 Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-04-11 15:24:57 UTC (rev 5038) +++ trunk/matplotlib/CHANGELOG 2008-04-11 15:32:03 UTC (rev 5039) @@ -1,7 +1,10 @@ -2008-04-11 Revert commits 5002 and 5031, which were intended to - avoid an unnecessary call to draw(). 5002 broke saving +2008-04-11 Fix global font rcParam setting after initialization + time. - MGD + +2008-04-11 Revert commits 5002 and 5031, which were intended to + avoid an unnecessary call to draw(). 5002 broke saving figures before show(). 5031 fixed the problem created in - 5002, but broke interactive plotting. Unnecessary call to + 5002, but broke interactive plotting. Unnecessary call to draw still needs resolution - DSD 2008-04-07 Improve color validation in rc handling, suggested Modified: trunk/matplotlib/examples/rec_groupby_demo.py =================================================================== --- trunk/matplotlib/examples/rec_groupby_demo.py 2008-04-11 15:24:57 UTC (rev 5038) +++ trunk/matplotlib/examples/rec_groupby_demo.py 2008-04-11 15:32:03 UTC (rev 5039) @@ -6,14 +6,20 @@ r.sort() def daily_return(prices): + 'an array of daily returns from price array' g = np.zeros_like(prices) g[1:] = (prices[1:]-prices[:-1])/prices[:-1] return g def volume_code(volume): + 'code the continuous volume data categorically' ind = np.searchsorted([1e5,1e6, 5e6,10e6, 1e7], volume) return ind +# a list of (dtype_name, summary_function, output_dtype_name). +# rec_summarize will call on each function on the indicated recarray +# attribute, and the result assigned to output name in the return +# record array. summaryfuncs = ( ('date', lambda x: [thisdate.year for thisdate in x], 'years'), ('date', lambda x: [thisdate.month for thisdate in x], 'months'), @@ -24,6 +30,10 @@ rsum = mlab.rec_summarize(r, summaryfuncs) +# stats is a list of (dtype_name, function, output_dtype_name). +# rec_groupby will summarize the attribute identified by the +# dtype_name over the groups in the groupby list, and assign the +# result to the output_dtype_name stats = ( ('dreturn', len, 'rcnt'), ('dreturn', np.mean, 'rmean'), @@ -31,6 +41,7 @@ ('dreturn', np.std, 'rsigma'), ) +# you can summarize over a single variable, like years or months print 'summary by years' ry = mlab.rec_groupby(rsum, ('years',), stats) print mlab. rec2txt(ry) @@ -39,6 +50,7 @@ rm = mlab.rec_groupby(rsum, ('months',), stats) print mlab.rec2txt(rm) +# or over multiple variables like years and months print 'summary by year and month' rym = mlab.rec_groupby(rsum, ('years','months'), stats) print mlab.rec2txt(rym) Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008-04-11 15:24:57 UTC (rev 5038) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008-04-11 15:32:03 UTC (rev 5039) @@ -2592,11 +2592,10 @@ xmax = npy.asarray(xmax) if len(xmin)==1: - xmin = xmin*npy.ones(y.shape, y.dtype) + xmin = npy.resize( xmin, y.shape ) if len(xmax)==1: - xmax = xmax*npy.ones(y.shape, y.dtype) + xmax = npy.resize( xmax, y.shape ) - if len(xmin)!=len(y): raise ValueError, 'xmin and y are unequal sized sequences' if len(xmax)!=len(y): @@ -2660,9 +2659,9 @@ ymin = npy.asarray(ymin) ymax = npy.asarray(ymax) if len(ymin)==1: - ymin = ymin*npy.ones(x.shape, x.dtype) + ymin = npy.resize( ymin, x.shape ) if len(ymax)==1: - ymax = ymax*npy.ones(x.shape, x.dtype) + ymax = npy.resize( ymax, x.shape ) if len(ymin)!=len(x): raise ValueError, 'ymin and x are unequal sized sequences' Modified: trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-04-11 15:24:57 UTC (rev 5038) +++ trunk/matplotlib/lib/matplotlib/backends/backend_qt4agg.py 2008-04-11 15:32:03 UTC (rev 5039) @@ -131,7 +131,6 @@ if DEBUG: print "FigureCanvasQtAgg.draw", self self.replot = True FigureCanvasAgg.draw(self) - self.update() def blit(self, bbox=None): """ Modified: trunk/matplotlib/lib/matplotlib/font_manager.py =================================================================== --- trunk/matplotlib/lib/matplotlib/font_manager.py 2008-04-11 15:24:57 UTC (rev 5038) +++ trunk/matplotlib/lib/matplotlib/font_manager.py 2008-04-11 15:32:03 UTC (rev 5039) @@ -625,20 +625,6 @@ fontconfig. """ - class FontPropertiesSet(object): - """This class contains all of the default properties at the - class level, which are then overridden (only if provided) at - the instance level.""" - family = rcParams['font.' + rcParams['font.family']] - if is_string_like(family): - family = [family] - slant = [rcParams['font.style']] - variant = [rcParams['font.variant']] - weight = [rcParams['font.weight']] - stretch = [rcParams['font.stretch']] - size = [rcParams['font.size']] - file = None - def __init__(self, family = None, style = None, @@ -649,12 +635,17 @@ fname = None, # if this is set, it's a hardcoded filename to use _init = None # used only by copy() ): + self._family = None + self._slant = None + self._variant = None + self._weight = None + self._stretch = None + self._size = None + self._file = None - self.__props = self.FontPropertiesSet() - # This is used only by copy() if _init is not None: - self.__props.__dict__.update(_init) + self.__dict__.update(_init.__dict__) return if is_string_like(family): @@ -666,9 +657,8 @@ stretch is None and size is None and fname is None): - self.__props.__dict__ = self._parse_fontconfig_pattern(family) + self.set_fontconfig_pattern(family) return - family = [family] self.set_family(family) self.set_style(style) @@ -682,7 +672,7 @@ return parse_fontconfig_pattern(pattern) def __hash__(self): - return hash(repr(self.__props.__dict__)) + return hash(repr(self.__dict__)) def __str__(self): return self.get_fontconfig_pattern() @@ -690,7 +680,12 @@ def get_family(self): """Return a list of font names that comprise the font family. """ - return self.__props.family + if self._family is None: + family = rcParams['font.family'] + if is_string_like(family): + return [family] + return family + return self._family def get_name(self): """Return the name of the font that best matches the font properties.""" @@ -698,38 +693,45 @@ def get_style(self): """Return the font style. Values are: normal, italic or oblique.""" - return self.__props.slant[0] + if self._slant is None: + return rcParams['font.style'] + return self._slant def get_variant(self): """Return the font variant. Values are: normal or small-caps.""" - return self.__props.variant[0] + if self._variant is None: + return rcParams['font.variant'] + return self._variant def get_weight(self): """ Return the font weight. See the FontProperties class for a a list of possible values. """ - return self.__props.weight[0] + if self._weight is None: + return rcParams['font.weight'] + return self._weight def get_stretch(self): """ Return the font stretch or width. Options are: normal, narrow, condensed, or wide. """ - return self.__props.stretch[0] + if self._stretch is None: + return rcParams['font.stretch'] + return self._stretch def get_size(self): """Return the font size.""" - return float(self.__props.size[0]) + if self._size is None: + return rcParams['font.size'] + return float(self._size) def get_file(self): - if self.__props.file is not None: - return self.__props.file[0] - else: - return None + return self._file def get_fontconfig_pattern(self): - return generate_fontconfig_pattern(self.__props.__dict__) + return generate_fontconfig_pattern(self) def set_family(self, family): """ @@ -738,58 +740,49 @@ fantasy, or monospace, or a real font name. """ if family is None: - self.__props.__dict__.pop('family', None) + self._family = None else: if is_string_like(family): family = [family] - self.__props.family = family + self._family = family set_name = set_family def set_style(self, style): """Set the font style. Values are: normal, italic or oblique.""" - if style is None: - self.__props.__dict__.pop('style', None) - else: - if style not in ('normal', 'italic', 'oblique'): - raise ValueError("style must be normal, italic or oblique") - self.__props.slant = [style] + if style not in ('normal', 'italic', 'oblique', None): + raise ValueError("style must be normal, italic or oblique") + self._slant = style def set_variant(self, variant): """Set the font variant. Values are: normal or small-caps.""" - if variant is None: - self.__props.__dict__.pop('variant', None) - else: - if variant not in ('normal', 'small-caps'): - raise ValueError("variant must be normal or small-caps") - self.__props.variant = [variant] + if variant not in ('normal', 'small-caps', None): + raise ValueError("variant must be normal or small-caps") + self._variant = variant def set_weight(self, weight): """ Set the font weight. See the FontProperties class for a a list of possible values. """ - if weight is None: - self.__props.__dict__.pop('weight', None) - else: - if (weight not in weight_dict and - weight not in weight_dict.keys()): - raise ValueError("weight is invalid") - self.__props.weight = [weight] + if (weight is not None and + weight not in weight_dict and + weight not in weight_dict.keys()): + raise ValueError("weight is invalid") + self._weight = weight def set_stretch(self, stretch): """ Set the font stretch or width. Options are: normal, narrow, condensed, or wide. """ - if stretch is None: - self.__props.__dict__.pop('stretch', None) - else: - self.__props.stretch = [stretch] + if stretch not in ('normal', 'narrow', 'condensed', 'wide', None): + raise ValueError("stretch is invalid") + self._stretch = stretch def set_size(self, size): """Set the font size.""" if size is None: - self.__props.__dict__.pop('size', None) + self._size = None else: if is_string_like(size): parent_size = fontManager.get_default_size() @@ -797,28 +790,25 @@ if scaling is not None: size = parent_size * scaling else: - size = parent_size - if isinstance(size, (int, float)): - size = [size] - self.__props.size = size + try: + size = float(size) + except ValueError: + size = parent_size + assert(type(size) in (int, float)) + self._size = size def set_file(self, file): - if file is None: - self.__props.__dict__.pop('file', None) - else: - self.__props.file = [file] + self._file = file get_size_in_points = get_size def set_fontconfig_pattern(self, pattern): - self.__props.__dict__ = self._parse_fontconfig_pattern(pattern) + for key, val in self._parse_fontconfig_pattern(pattern).items(): + getattr(self, "set_" + key)(val) - def add_property_pair(self, key, val): - self.__props.setdefault(key, []).append(val) - def copy(self): """Return a deep copy of self""" - return FontProperties(_init = self.__props.__dict__) + return FontProperties(_init = self) def ttfdict_to_fnames(d): 'flatten a ttfdict to all the filenames it contains' Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-04-11 15:24:57 UTC (rev 5038) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-04-11 15:32:03 UTC (rev 5039) @@ -1948,7 +1948,6 @@ except NotImplementedError: return False else: return b - def rec_append_field(rec, name, arr, dtype=None): 'return a new record array with field name populated with data from array arr' arr = npy.asarray(arr) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ef...@us...> - 2008-04-13 04:52:46
|
Revision: 5042 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5042&view=rev Author: efiring Date: 2008-04-12 21:52:41 -0700 (Sat, 12 Apr 2008) Log Message: ----------- Speed up zooming and panning of dense images. Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/image.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-04-13 04:20:54 UTC (rev 5041) +++ trunk/matplotlib/CHANGELOG 2008-04-13 04:52:41 UTC (rev 5042) @@ -1,3 +1,5 @@ +2008-04-12 Speed up zooming and panning of dense images. - EF + 2008-04-11 Fix global font rcParam setting after initialization time. - MGD Modified: trunk/matplotlib/lib/matplotlib/image.py =================================================================== --- trunk/matplotlib/lib/matplotlib/image.py 2008-04-13 04:20:54 UTC (rev 5041) +++ trunk/matplotlib/lib/matplotlib/image.py 2008-04-13 04:52:41 UTC (rev 5042) @@ -81,6 +81,7 @@ self._extent = extent self.set_filternorm(filternorm) self.set_filterrad(filterrad) + self._filterrad = filterrad @@ -122,13 +123,61 @@ if self._A is None: raise RuntimeError('You must first set the image array or the image attribute') + xmin, xmax, ymin, ymax = self.get_extent() + dxintv = xmax-xmin + dyintv = ymax-ymin + + # the viewport scale factor + sx = dxintv/self.axes.viewLim.width + sy = dyintv/self.axes.viewLim.height + numrows, numcols = self._A.shape[:2] + if sx > 2: + x0 = (self.axes.viewLim.x0-xmin)/dxintv * numcols + ix0 = max(0, int(x0 - self._filterrad)) + x1 = (self.axes.viewLim.x1-xmin)/dxintv * numcols + ix1 = min(numcols, int(x1 + self._filterrad)) + xslice = slice(ix0, ix1) + xmin_old = xmin + xmin = xmin_old + ix0*dxintv/numcols + xmax = xmin_old + ix1*dxintv/numcols + dxintv = xmax - xmin + sx = dxintv/self.axes.viewLim.width + else: + xslice = slice(0, numcols) + + if sy > 2: + y0 = (self.axes.viewLim.y0-ymin)/dyintv * numrows + iy0 = max(0, int(y0 - self._filterrad)) + y1 = (self.axes.viewLim.y1-ymin)/dyintv * numrows + iy1 = min(numrows, int(y1 + self._filterrad)) + if self.origin == 'upper': + yslice = slice(numrows-iy1, numrows-iy0) + else: + yslice = slice(iy0, iy1) + ymin_old = ymin + ymin = ymin_old + iy0*dyintv/numrows + ymax = ymin_old + iy1*dyintv/numrows + dyintv = ymax - ymin + sy = dyintv/self.axes.viewLim.height + else: + yslice = slice(0, numrows) + + if xslice != self._oldxslice or yslice != self._oldyslice: + self._imcache = None + self._oldxslice = xslice + self._oldyslice = yslice + if self._imcache is None: if self._A.dtype == npy.uint8 and len(self._A.shape) == 3: - im = _image.frombyte(self._A, 0) + im = _image.frombyte(self._A[xslice,yslice,:], 0) im.is_grayscale = False else: - x = self.to_rgba(self._A, self._alpha) - im = _image.fromarray(x, 0) + if self._rgbacache is None: + x = self.to_rgba(self._A, self._alpha) + self._rgbacache = x + else: + x = self._rgbacache + im = _image.fromarray(x[yslice,xslice], 0) if len(self._A.shape) == 2: im.is_grayscale = self.cmap.is_gray() else: @@ -150,14 +199,7 @@ im.set_interpolation(self._interpd[self._interpolation]) - xmin, xmax, ymin, ymax = self.get_extent() - dxintv = xmax-xmin - dyintv = ymax-ymin - # the viewport scale factor - sx = dxintv/self.axes.viewLim.width - sy = dyintv/self.axes.viewLim.height - # the viewport translation tx = (xmin-self.axes.viewLim.x0)/dxintv * numcols ty = (ymin-self.axes.viewLim.y0)/dyintv * numrows @@ -165,18 +207,14 @@ l, b, widthDisplay, heightDisplay = self.axes.bbox.bounds widthDisplay *= magnification heightDisplay *= magnification - im.apply_translation(tx, ty) - im.apply_scaling(sx, sy) # resize viewport to display rx = widthDisplay / numcols ry = heightDisplay / numrows - im.apply_scaling(rx, ry) - + im.apply_scaling(rx*sx, ry*sy) im.resize(int(widthDisplay+0.5), int(heightDisplay+0.5), norm=self._filternorm, radius=self._filterrad) - return im @@ -232,6 +270,9 @@ self._A = X self._imcache =None + self._rgbacache = None + self._oldxslice = None + self._oldyslice = None def set_array(self, A): """ @@ -409,6 +450,12 @@ cm.ScalarMappable.set_cmap(self, norm) class PcolorImage(martist.Artist, cm.ScalarMappable): + ''' + Make a pcolor-style plot with an irregular rectangular grid. + + This uses a variation of the original irregular image code, + and it is used by pcolorfast for the corresponding grid type. + ''' def __init__(self, ax, x=None, y=None, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ef...@us...> - 2008-04-15 17:42:03
|
Revision: 5043 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5043&view=rev Author: efiring Date: 2008-04-15 10:41:53 -0700 (Tue, 15 Apr 2008) Log Message: ----------- Speed up color mapping Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/colors.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-04-13 04:52:41 UTC (rev 5042) +++ trunk/matplotlib/CHANGELOG 2008-04-15 17:41:53 UTC (rev 5043) @@ -1,3 +1,5 @@ +2008-04-15 Speed up color mapping. - EF + 2008-04-12 Speed up zooming and panning of dense images. - EF 2008-04-11 Fix global font rcParam setting after initialization Modified: trunk/matplotlib/lib/matplotlib/colors.py =================================================================== --- trunk/matplotlib/lib/matplotlib/colors.py 2008-04-13 04:52:41 UTC (rev 5042) +++ trunk/matplotlib/lib/matplotlib/colors.py 2008-04-15 17:41:53 UTC (rev 5043) @@ -446,7 +446,7 @@ lut = (self._lut * 255).astype(npy.uint8) else: lut = self._lut - rgba = lut[xa] + rgba = lut.take(xa, axis=0) # twice as fast as lut[xa] if vtype == 'scalar': rgba = tuple(rgba[0,:]) return rgba This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mme...@us...> - 2008-04-20 10:45:37
|
Revision: 5053 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5053&view=rev Author: mmetz_bn Date: 2008-04-20 03:45:32 -0700 (Sun, 20 Apr 2008) Log Message: ----------- Fixed double-zoom bug Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/backend_bases.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008-04-20 01:33:46 UTC (rev 5052) +++ trunk/matplotlib/CHANGELOG 2008-04-20 10:45:32 UTC (rev 5053) @@ -1,3 +1,5 @@ +2008-04-20 Fix double-zoom bug. - MM + 2008-04-15 Speed up color mapping. - EF 2008-04-12 Speed up zooming and panning of dense images. - EF Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-04-20 01:33:46 UTC (rev 5052) +++ trunk/matplotlib/lib/matplotlib/backend_bases.py 2008-04-20 10:45:32 UTC (rev 5053) @@ -1508,6 +1508,8 @@ 'the release mouse button callback in zoom to rect mode' if not self._xypress: return + last_a = [] + for cur_xypress in self._xypress: x, y = event.x, event.y lastx, lasty, a, ind, lim, trans = cur_xypress @@ -1526,28 +1528,42 @@ x, y = inverse.transform_point( (x, y) ) Xmin,Xmax=a.get_xlim() Ymin,Ymax=a.get_ylim() + + # detect twinx,y axes and avoid double zooming + twinx, twiny = False, False + if last_a: + for la in last_a: + if a._shared_x_axes.joined(a,la): twinx=True + if a._shared_y_axes.joined(a,la): twiny=True + last_a.append(a) - if Xmin < Xmax: - if x<lastx: x0, x1 = x, lastx - else: x0, x1 = lastx, x - if x0 < Xmin: x0=Xmin - if x1 > Xmax: x1=Xmax + if twinx: + x0, x1 = Xmin, Xmax else: - if x>lastx: x0, x1 = x, lastx - else: x0, x1 = lastx, x - if x0 > Xmin: x0=Xmin - if x1 < Xmax: x1=Xmax + if Xmin < Xmax: + if x<lastx: x0, x1 = x, lastx + else: x0, x1 = lastx, x + if x0 < Xmin: x0=Xmin + if x1 > Xmax: x1=Xmax + else: + if x>lastx: x0, x1 = x, lastx + else: x0, x1 = lastx, x + if x0 > Xmin: x0=Xmin + if x1 < Xmax: x1=Xmax - if Ymin < Ymax: - if y<lasty: y0, y1 = y, lasty - else: y0, y1 = lasty, y - if y0 < Ymin: y0=Ymin - if y1 > Ymax: y1=Ymax + if twiny: + y0, y1 = Ymin, Ymax else: - if y>lasty: y0, y1 = y, lasty - else: y0, y1 = lasty, y - if y0 > Ymin: y0=Ymin - if y1 < Ymax: y1=Ymax + if Ymin < Ymax: + if y<lasty: y0, y1 = y, lasty + else: y0, y1 = lasty, y + if y0 < Ymin: y0=Ymin + if y1 > Ymax: y1=Ymax + else: + if y>lasty: y0, y1 = y, lasty + else: y0, y1 = lasty, y + if y0 > Ymin: y0=Ymin + if y1 < Ymax: y1=Ymax if self._button_pressed == 1: a.set_xlim((x0, x1)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |