Revision: 4698
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4698&view=rev
Author:   jdh2358
Date:     2007-12-11 13:17:59 -0800 (Tue, 11 Dec 2007)

Log Message:
-----------
fixed text with dash bug

Modified Paths:
--------------
    trunk/matplotlib/examples/dashpointlabel.py
    trunk/matplotlib/examples/lasso_demo.py
    trunk/matplotlib/lib/matplotlib/cbook.py
    trunk/matplotlib/lib/matplotlib/text.py

Modified: trunk/matplotlib/examples/dashpointlabel.py
===================================================================
--- trunk/matplotlib/examples/dashpointlabel.py 2007-12-11 17:14:44 UTC (rev 
4697)
+++ trunk/matplotlib/examples/dashpointlabel.py 2007-12-11 21:17:59 UTC (rev 
4698)
@@ -1,4 +1,4 @@
-from matplotlib import pylab
+import pylab
 
 DATA = ((1, 3),
         (2, 4),
@@ -15,26 +15,27 @@
     (1, 20, 30, 60, 10),
     )
 
-def test_dashpointlabel(save=False):
-    pylab.clf()
-    (x,y) = zip(*DATA)
-    pylab.plot(x, y, marker='o')
-    for i in xrange(len(DATA)):
-        (x,y) = DATA[i]
-        (dd, dl, r, dr, dp) = dash_style[i]
-        pylab.text(x, y, str((x,y)), withdash=True,
-                   dashdirection=dd,
-                   dashlength=dl,
-                   rotation=r,
-                   dashrotation=dr,
-                   dashpush=dp,
-                   )
-    axis = pylab.gca()
-    axis.set_xlim((0.0, 5.0))
-    axis.set_ylim((0.0, 5.0))
-    if save:
-        pylab.savefig('dashpointlabel')
-    pylab.show()
+fig = pylab.figure()
+ax = fig.add_subplot(111)
 
-if __name__ == '__main__':
-    test_dashpointlabel()
+
+(x,y) = zip(*DATA)
+ax.plot(x, y, marker='o')
+for i in xrange(len(DATA)):
+    (x,y) = DATA[i]
+    (dd, dl, r, dr, dp) = dash_style[i]
+    #print 'dashlen call', dl
+    t = ax.text(x, y, str((x,y)), withdash=True,
+               dashdirection=dd,
+               dashlength=dl,
+               rotation=r,
+               dashrotation=dr,
+               dashpush=dp,
+               )
+
+ax.set_xlim((0.0, 5.0))
+ax.set_ylim((0.0, 5.0))
+#if save:
+#    pylab.savefig('dashpointlabel')
+pylab.show()
+

Modified: trunk/matplotlib/examples/lasso_demo.py
===================================================================
--- trunk/matplotlib/examples/lasso_demo.py     2007-12-11 17:14:44 UTC (rev 
4697)
+++ trunk/matplotlib/examples/lasso_demo.py     2007-12-11 21:17:59 UTC (rev 
4698)
@@ -59,6 +59,7 @@
         self.canvas.draw_idle()
         self.canvas.widgetlock.release(self.lasso)
         del self.lasso
+
     def onpress(self, event):
         if self.canvas.widgetlock.locked(): return
         if event.inaxes is None: return

Modified: trunk/matplotlib/lib/matplotlib/cbook.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/cbook.py    2007-12-11 17:14:44 UTC (rev 
4697)
+++ trunk/matplotlib/lib/matplotlib/cbook.py    2007-12-11 21:17:59 UTC (rev 
4698)
@@ -962,6 +962,10 @@
         outstream.write("Examining: %r\n" % (obj,))
         recurse(obj, obj, { }, [])
 
+
+
+
+
 if __name__=='__main__':
     assert( allequal([1,1,1]) )
     assert(not  allequal([1,1,0]) )

Modified: trunk/matplotlib/lib/matplotlib/text.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/text.py     2007-12-11 17:14:44 UTC (rev 
4697)
+++ trunk/matplotlib/lib/matplotlib/text.py     2007-12-11 21:17:59 UTC (rev 
4698)
@@ -387,6 +387,11 @@
         "Return the horizontal alignment as string"
         return self._horizontalalignment
 
+
+    def _get_xy_display(self):
+        'get the (possibly unit converted) transformed x,y in display coords'
+        return self.get_transform().xy_tup((self._x, self._y))
+
     def get_position(self):
         "Return x, y as tuple"
         x = float(self.convert_xunits(self._x))
@@ -770,7 +775,26 @@
 
         #self.set_bbox(dict(pad=0))
 
+    def get_position(self):
+        "Return x, y as tuple"
+        x = float(self.convert_xunits(self._dashx))
+        y = float(self.convert_yunits(self._dashy))
+        return x, y
+
+    def get_prop_tup(self):
+        """
+        Return a hashable tuple of properties
+
+        Not intended to be human readable, but useful for backends who
+        want to cache derived information about text (eg layouts) and
+        need to know if the text has changed
+        """
+        props = [p for p in Text.get_prop_tup(self)]
+        props.extend([self._x, self._y, self._dashlength, self._dashdirection, 
self._dashrotation, self._dashpad, self._dashpush])
+        return tuple(props)
+
     def draw(self, renderer):
+        self.cached = dict()
         self.update_coords(renderer)
         Text.draw(self, renderer)
         if self.get_dashlength() > 0.0:
@@ -846,8 +870,12 @@
         cwd *= 1+dashpad/npy.sqrt(npy.dot(cwd,cwd))
         cw = c2+(dashdirection*2-1)*cwd
 
-        self._x, self._y = transform.inverse_xy_tup(tuple(cw))
 
+
+        newx, newy = transform.inverse_xy_tup(tuple(cw))
+
+        self._x, self._y = newx, newy
+
         # Now set the window extent
         # I'm not at all sure this is the right way to do this.
         we = Text.get_window_extent(self, renderer=renderer)
@@ -930,9 +958,6 @@
         """
         self._dashpush = dp
 
-    def get_position(self):
-        "Return x, y as tuple"
-        return self._dashx, self._dashy
 
     def set_position(self, xy):
         """


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to