|
From: <ef...@us...> - 2008-07-25 03:41:22
|
Revision: 5863
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5863&view=rev
Author: efiring
Date: 2008-07-25 03:41:21 +0000 (Fri, 25 Jul 2008)
Log Message:
-----------
Removed body of unmasked_index_ranges from lines.py.
This should have been part of changeset 5812.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-07-25 02:40:12 UTC (rev 5862)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-07-25 03:41:21 UTC (rev 5863)
@@ -17,60 +17,20 @@
from transforms import Affine2D, Bbox, TransformedPath
from matplotlib import rcParams
-
# special-purpose marker identifiers:
(TICKLEFT, TICKRIGHT, TICKUP, TICKDOWN,
CARETLEFT, CARETRIGHT, CARETUP, CARETDOWN) = range(8)
+
# COVERAGE NOTE: Never called internally or from examples
def unmasked_index_ranges(mask, compressed = True):
- '''
- Calculate the good data ranges in a masked 1-D np.array, based on
- mask.
+ warnings.warn("Import this directly from matplotlib.cbook",
+ DeprecationWarning)
+ # Warning added 2008/07/22
+ from matplotlib.cbook import unmasked_index_ranges as _unmasked_index_ranges
+ return _unmasked_index_ranges(mask, compressed=compressed)
- Returns Nx2 :class:`numpy.array` with each row the start and stop
- indices for slices of the compressed :class:`numpy.array`
- corresponding to each of *N* uninterrupted runs of unmasked
- values. If optional argument *compressed* is *False*, it returns
- the start and stop indices into the original :class:`numpy.array`,
- not the compressed :class:`numpy.array`. Returns *None* if there
- are no unmasked values.
- Example::
-
- y = ma.array(np.arange(5), mask = [0,0,1,0,0])
- #ii = unmasked_index_ranges(y.mask())
- ii = unmasked_index_ranges(ma.getmask(y))
- # returns [[0,2,] [2,4,]]
-
- y.compressed().filled()[ii[1,0]:ii[1,1]]
- # returns np.array [3,4,]
- # (The 'filled()' method converts the masked np.array to a numerix np.array.)
-
- #i0, i1 = unmasked_index_ranges(y.mask(), compressed=False)
- i0, i1 = unmasked_index_ranges(ma.getmask(y), compressed=False)
- # returns [[0,3,] [2,5,]]
-
- y.filled()[ii[1,0]:ii[1,1]]
- # returns np.array [3,4,]
-
- '''
- m = np.concatenate(((1,), mask, (1,)))
- indices = np.arange(len(mask) + 1)
- mdif = m[1:] - m[:-1]
- i0 = np.compress(mdif == -1, indices)
- i1 = np.compress(mdif == 1, indices)
- assert len(i0) == len(i1)
- if len(i1) == 0:
- return None
- if not compressed:
- return np.concatenate((i0[:, np.newaxis], i1[:, np.newaxis]), axis=1)
- seglengths = i1 - i0
- breakpoints = np.cumsum(seglengths)
- ic0 = np.concatenate(((0,), breakpoints[:-1]))
- ic1 = breakpoints
- return np.concatenate((ic0[:, np.newaxis], ic1[:, np.newaxis]), axis=1)
-
def segment_hits(cx,cy,x,y,radius):
"""Determine if any line segments are within radius of a point. Returns
the list of line segments that are within that radius.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pki...@us...> - 2008-07-26 22:23:08
|
Revision: 5893
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5893&view=rev
Author: pkienzle
Date: 2008-07-26 22:23:06 +0000 (Sat, 26 Jul 2008)
Log Message:
-----------
fix contains() method for Lines
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-07-26 19:32:47 UTC (rev 5892)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-07-26 22:23:06 UTC (rev 5893)
@@ -236,33 +236,43 @@
if not is_numlike(self.pickradius):
raise ValueError,"pick radius should be a distance"
+ # Make sure we have data to plot
if self._invalid:
self.recache()
if len(self._xy)==0: return False,{}
- tpath = self._transformed_path.get_fully_transformed_path()
- xyt = tpath.vertices
- xt = xyt[:, 0]
- yt = xyt[:, 1]
+ # Convert points to pixels
+ path, affine = self._transformed_path.get_transformed_path_and_affine()
+ path = affine.transform_path(path)
+ xy = path.vertices
+ xt = xy[:, 0]
+ yt = xy[:, 1]
+
+ # Convert pick radius from points to pixels
if self.figure == None:
- print str(self),' has no figure set'
+ warning.warn('no figure set when check if mouse is on line')
pixels = self.pickradius
else:
pixels = self.figure.dpi/72. * self.pickradius
+ # Check for collision
if self._linestyle in ['None',None]:
# If no line, return the nearby point(s)
- d = np.sqrt((xt-mouseevent.x)**2 + (yt-mouseevent.y)**2)
- ind, = np.nonzero(np.less_equal(d, pixels))
+ d = (xt-mouseevent.x)**2 + (yt-mouseevent.y)**2
+ ind, = np.nonzero(np.less_equal(d, pixels**2))
else:
# If line, return the nearby segment(s)
ind = segment_hits(mouseevent.x,mouseevent.y,xt,yt,pixels)
- if 0:
- print 'linestyle',self._linestyle
- print 'xt', xt, mouseevent.x
- print 'yt', yt, mouseevent.y
- print 'dx,dy', (xt-mouseevent.x)**2., (yt-mouseevent.y)**2.
+
+ # Debugging message
+ if False and self._label != u'':
+ print "Checking line",self._label,"at",mouseevent.x,mouseevent.y
+ print 'xt', xt
+ print 'yt', yt
+ #print 'dx,dy', (xt-mouseevent.x)**2., (yt-mouseevent.y)**2.
print 'ind',ind
+
+ # Return the point(s) within radius
return len(ind)>0,dict(ind=ind)
def get_pickradius(self):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2008-12-10 14:55:09
|
Revision: 6547
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6547&view=rev
Author: jdh2358
Date: 2008-12-10 14:55:05 +0000 (Wed, 10 Dec 2008)
Log Message:
-----------
updated linestyle and markerstyle doc strings
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-12-10 14:39:44 UTC (rev 6546)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-12-10 14:55:05 UTC (rev 6547)
@@ -74,6 +74,14 @@
return np.concatenate((points,lines))
class Line2D(Artist):
+ """
+ A line - the line can have both a solid linestyle connecting all
+ the vertices, and a marker at each vertex. Additionally, the
+ drawing of the solid line is influenced by the drawstyle, eg one
+ can create "stepped" lines in various styles.
+
+
+ """
lineStyles = _lineStyles = { # hidden names deprecated
'-' : '_draw_solid',
'--' : '_draw_dashed',
@@ -178,6 +186,11 @@
The kwargs are :class:`~matplotlib.lines.Line2D` properties:
%(Line2D)s
+
+ See :meth:`set_linestyle` for a decription of the line styles,
+ :meth:`set_marker` for a description of the markers, and
+ :meth:`set_drawstyle` for a description of the draw styles.
+
"""
Artist.__init__(self)
@@ -589,11 +602,27 @@
def set_linestyle(self, linestyle):
"""
- Set the linestyle of the line
+ Set the linestyle of the line (also accepts drawstyles)
+
+ ================ =================
+ linestyle description
+ ================ =================
+ '-' solid
+ '--' dashed
+ '-.' dash_dot
+ ':' dotted
+ 'None' draw nothing
+ ' ' draw nothing
+ '' draw nothing
+ ================ =================
+
'steps' is equivalent to 'steps-pre' and is maintained for
backward-compatibility.
+ .. seealso::
+ :meth:`set_drawstyle`
+
ACCEPTS: [ '-' | '--' | '-.' | ':' | 'None' | ' ' | '' ] and
any drawstyle in combination with a linestyle, e.g. 'steps--'.
"""
@@ -622,6 +651,44 @@
"""
Set the line marker
+ ========= ==========================
+ marker description
+ ========= ==========================
+ '.' point
+ ',' pixel
+ 'o' circle
+ 'v' triangle_down
+ '^' triangle_up
+ '<' triangle_left
+ '>' triangle_right
+ '1' tri_down
+ '2' tri_up
+ '3' tri_left
+ '4' tri_right
+ 's' square
+ 'p' pentagon
+ '*' star
+ 'h' hexagon1
+ 'H' hexagon2
+ '+' plus
+ 'x' x
+ 'D' diamond
+ 'd' thin_diamond
+ '|' vline
+ '_' hline
+ TICKLEFT tickleft
+ TICKRIGHT tickright
+ TICKUP tickup
+ TICKDOWN tickdown
+ CARETLEFT caretleft
+ CARETRIGHT caretright
+ CARETUP caretup
+ CARETDOWN caretdown
+ 'None' nothing
+ ' ' nothing
+ '' nothing
+ ========= ==========================
+
ACCEPTS: [ '+' | '*' | ',' | '.' | '1' | '2' | '3' | '4'
| '<' | '>' | 'D' | 'H' | '^' | '_' | 'd'
| 'h' | 'o' | 'p' | 's' | 'v' | 'x' | '|'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lee...@us...> - 2008-12-11 17:45:49
|
Revision: 6562
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6562&view=rev
Author: leejjoon
Date: 2008-12-11 17:45:45 +0000 (Thu, 11 Dec 2008)
Log Message:
-----------
fixed typo in Line2D.set_marker doc.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 03:25:31 UTC (rev 6561)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 17:45:45 UTC (rev 6562)
@@ -651,9 +651,9 @@
"""
Set the line marker
- ========= ==========================
+ ========== ==========================
marker description
- ========= ==========================
+ ========== ==========================
'.' point
',' pixel
'o' circle
@@ -687,7 +687,7 @@
'None' nothing
' ' nothing
'' nothing
- ========= ==========================
+ ========== ==========================
ACCEPTS: [ '+' | '*' | ',' | '.' | '1' | '2' | '3' | '4'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-12-11 20:44:16
|
Revision: 6566
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6566&view=rev
Author: mdboom
Date: 2008-12-11 20:44:12 +0000 (Thu, 11 Dec 2008)
Log Message:
-----------
added some docs for linestyles and markers
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 20:32:04 UTC (rev 6565)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 20:44:12 UTC (rev 6566)
@@ -690,6 +690,7 @@
========== ==========================
+
ACCEPTS: [ '+' | '*' | ',' | '.' | '1' | '2' | '3' | '4'
| '<' | '>' | 'D' | 'H' | '^' | '_' | 'd'
| 'h' | 'o' | 'p' | 's' | 'v' | 'x' | '|'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-12-11 20:44:28
|
Revision: 6567
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6567&view=rev
Author: mdboom
Date: 2008-12-11 20:44:23 +0000 (Thu, 11 Dec 2008)
Log Message:
-----------
fixed typo in Line2D.set_marker doc.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 20:44:12 UTC (rev 6566)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 20:44:23 UTC (rev 6567)
@@ -690,7 +690,6 @@
========== ==========================
-
ACCEPTS: [ '+' | '*' | ',' | '.' | '1' | '2' | '3' | '4'
| '<' | '>' | 'D' | 'H' | '^' | '_' | 'd'
| 'h' | 'o' | 'p' | 's' | 'v' | 'x' | '|'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2008-12-11 20:44:38
|
Revision: 6568
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6568&view=rev
Author: mdboom
Date: 2008-12-11 20:44:32 +0000 (Thu, 11 Dec 2008)
Log Message:
-----------
added some docs for linestyles and markers
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 20:44:23 UTC (rev 6567)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2008-12-11 20:44:32 UTC (rev 6568)
@@ -690,6 +690,7 @@
========== ==========================
+
ACCEPTS: [ '+' | '*' | ',' | '.' | '1' | '2' | '3' | '4'
| '<' | '>' | 'D' | 'H' | '^' | '_' | 'd'
| 'h' | 'o' | 'p' | 's' | 'v' | 'x' | '|'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-02-02 16:19:37
|
Revision: 6864
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6864&view=rev
Author: mdboom
Date: 2009-02-02 16:19:33 +0000 (Mon, 02 Feb 2009)
Log Message:
-----------
Fix bug in markevery where markers were being recursively removed.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2009-02-02 12:42:08 UTC (rev 6863)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2009-02-02 16:19:33 UTC (rev 6864)
@@ -509,12 +509,16 @@
else:
startind, stride = 0, markevery
if tpath.codes is not None:
- tpath.codes = tpath.codes[startind::stride]
- tpath.vertices = tpath.vertices[startind::stride]
+ codes = tpath.codes[startind::stride]
+ else:
+ codes = None
+ vertices = tpath.vertices[startind::stride]
+ subsampled = Path(vertices, codes)
+ else:
+ subsampled = tpath
-
markerFunc = getattr(self, funcname)
- markerFunc(renderer, gc, tpath, affine.frozen())
+ markerFunc(renderer, gc, subsampled, affine.frozen())
renderer.close_group('line2d')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2009-02-02 17:12:30
|
Revision: 6866
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6866&view=rev
Author: mdboom
Date: 2009-02-02 17:12:27 +0000 (Mon, 02 Feb 2009)
Log Message:
-----------
Fix markevery -- the tuple form was not working (if it ever was).
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2009-02-02 16:29:37 UTC (rev 6865)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2009-02-02 17:12:27 UTC (rev 6866)
@@ -508,12 +508,12 @@
startind, stride = markevery
else:
startind, stride = 0, markevery
- if tpath.codes is not None:
- codes = tpath.codes[startind::stride]
- else:
- codes = None
- vertices = tpath.vertices[startind::stride]
- subsampled = Path(vertices, codes)
+ if tpath.codes is not None:
+ codes = tpath.codes[startind::stride]
+ else:
+ codes = None
+ vertices = tpath.vertices[startind::stride]
+ subsampled = Path(vertices, codes)
else:
subsampled = tpath
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2009-08-18 02:41:52
|
Revision: 7497
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7497&view=rev
Author: efiring
Date: 2009-08-18 02:41:43 +0000 (Tue, 18 Aug 2009)
Log Message:
-----------
Remove unmasked_index_ranges from lines.py; it is still in cbook.py
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2009-08-15 23:51:39 UTC (rev 7496)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2009-08-18 02:41:43 UTC (rev 7497)
@@ -26,15 +26,6 @@
CARETLEFT, CARETRIGHT, CARETUP, CARETDOWN) = range(8)
-# COVERAGE NOTE: Never called internally or from examples
-def unmasked_index_ranges(mask, compressed = True):
- warnings.warn("Import this directly from matplotlib.cbook",
- DeprecationWarning)
- # Warning added 2008/07/22
- from matplotlib.cbook import unmasked_index_ranges as _unmasked_index_ranges
- return _unmasked_index_ranges(mask, compressed=compressed)
-
-
def segment_hits(cx, cy, x, y, radius):
"""
Determine if any line segments are within radius of a
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2009-08-18 22:19:12
|
Revision: 7505
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7505&view=rev
Author: efiring
Date: 2009-08-18 22:18:59 +0000 (Tue, 18 Aug 2009)
Log Message:
-----------
Small cleanup of logic in handling drawstyle in Line2D
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2009-08-18 22:13:11 UTC (rev 7504)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2009-08-18 22:18:59 UTC (rev 7505)
@@ -99,6 +99,8 @@
drawStyles = {}
drawStyles.update(_drawStyles_l)
drawStyles.update(_drawStyles_s)
+ # Need a list ordered with long names first:
+ drawStyleKeys = _drawStyles_l.keys() + _drawStyles_s.keys()
markers = _markers = { # hidden names deprecated
'.' : '_draw_point',
@@ -712,15 +714,14 @@
any drawstyle in combination with a linestyle, e.g. 'steps--'.
"""
- # handle long drawstyle names before short ones !
- for ds in flatten([k.keys() for k in (self._drawStyles_l,
- self._drawStyles_s)], is_string_like):
+ for ds in self.drawStyleKeys: # long names are first in the list
if linestyle.startswith(ds):
self.set_drawstyle(ds)
if len(linestyle) > len(ds):
linestyle = linestyle[len(ds):]
else:
linestyle = '-'
+ break
if linestyle not in self._lineStyles:
if linestyle in ls_mapper:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2009-12-27 23:19:00
|
Revision: 8053
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8053&view=rev
Author: efiring
Date: 2009-12-27 23:18:51 +0000 (Sun, 27 Dec 2009)
Log Message:
-----------
fix whitespace, one docstring in lines.py
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2009-12-22 23:43:09 UTC (rev 8052)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2009-12-27 23:18:51 UTC (rev 8053)
@@ -233,7 +233,7 @@
self.set_markerfacecolor(markerfacecolor)
self.set_markeredgecolor(markeredgecolor)
self.set_markeredgewidth(markeredgewidth)
- self.set_fillstyle(fillstyle)
+ self.set_fillstyle(fillstyle)
self._point_size_reduction = 0.5
@@ -323,9 +323,9 @@
def get_fillstyle(self):
"""
- return the marker fillstyle
+ return the marker fillstyle
"""
- return self._fillstyle
+ return self._fillstyle
def set_fillstyle(self, fs):
"""
@@ -335,7 +335,7 @@
ACCEPTS: ['full' | 'left' | 'right' | 'bottom' | 'top']
"""
assert fs in ['full', 'left' , 'right' , 'bottom' , 'top']
- self._fillstyle = fs
+ self._fillstyle = fs
def set_markevery(self, every):
"""
@@ -396,7 +396,7 @@
"""
Set the x and y data
- ACCEPTS: 2D array
+ ACCEPTS: 2D array (rows are x, y) or two 1D arrays
"""
if len(args)==1:
x, y = args[0]
@@ -931,8 +931,8 @@
def _draw_point(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
w = renderer.points_to_pixels(self._markersize) * \
@@ -946,8 +946,8 @@
_draw_pixel_transform = Affine2D().translate(-0.5, -0.5)
def _draw_pixel(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
rgbFace = self._get_rgb_face()
@@ -958,8 +958,8 @@
def _draw_circle(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
w = renderer.points_to_pixels(self._markersize) * 0.5
@@ -974,8 +974,8 @@
_triangle_path = Path([[0.0, 1.0], [-1.0, -1.0], [1.0, -1.0], [0.0, 1.0]])
def _draw_triangle_up(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
@@ -987,8 +987,8 @@
def _draw_triangle_down(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
@@ -1000,8 +1000,8 @@
def _draw_triangle_left(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
@@ -1013,8 +1013,8 @@
def _draw_triangle_right(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
@@ -1030,8 +1030,8 @@
side = renderer.points_to_pixels(self._markersize)
transform = Affine2D().translate(-0.5, -0.5).scale(side)
rgbFace = self._get_rgb_face()
- fs = self.get_fillstyle()
- if fs=='full':
+ fs = self.get_fillstyle()
+ if fs=='full':
renderer.draw_markers(gc, Path.unit_rectangle(), transform,
path, path_trans, rgbFace)
else:
@@ -1052,8 +1052,8 @@
path, path_trans, None)
def _draw_diamond(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
side = renderer.points_to_pixels(self._markersize)
@@ -1064,8 +1064,8 @@
def _draw_thin_diamond(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 3.0)
offset = renderer.points_to_pixels(self._markersize)
@@ -1077,8 +1077,8 @@
def _draw_pentagon(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
offset = 0.5 * renderer.points_to_pixels(self._markersize)
@@ -1088,8 +1088,8 @@
path, path_trans, rgbFace)
def _draw_star(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
offset = 0.5 * renderer.points_to_pixels(self._markersize)
@@ -1101,8 +1101,8 @@
def _draw_hexagon1(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
offset = 0.5 * renderer.points_to_pixels(self._markersize)
@@ -1113,8 +1113,8 @@
def _draw_hexagon2(self, renderer, gc, path, path_trans):
- fs = self.get_fillstyle()
- if fs!='full':
+ fs = self.get_fillstyle()
+ if fs!='full':
raise NotImplementedError('non-full markers have not been implemented for this marker style yet; please contribute')
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
offset = 0.5 * renderer.points_to_pixels(self._markersize)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2009-12-28 01:34:14
|
Revision: 8055
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8055&view=rev
Author: efiring
Date: 2009-12-28 01:34:06 +0000 (Mon, 28 Dec 2009)
Log Message:
-----------
Fix bug in Line2D from last commit: restore full recache in unit chane callback
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2009-12-28 00:21:50 UTC (rev 8054)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2009-12-28 01:34:06 UTC (rev 8055)
@@ -388,9 +388,9 @@
def set_axes(self, ax):
Artist.set_axes(self, ax)
if ax.xaxis is not None:
- self._xcid = ax.xaxis.callbacks.connect('units', self.recache)
+ self._xcid = ax.xaxis.callbacks.connect('units', self.recache_always)
if ax.yaxis is not None:
- self._ycid = ax.yaxis.callbacks.connect('units', self.recache)
+ self._ycid = ax.yaxis.callbacks.connect('units', self.recache_always)
set_axes.__doc__ = Artist.set_axes.__doc__
def set_data(self, *args):
@@ -407,8 +407,11 @@
self.set_xdata(x)
self.set_ydata(y)
- def recache(self):
- if self._invalidx:
+ def recache_always(self):
+ self.recache(always=True)
+
+ def recache(self, always=False):
+ if always or self._invalidx:
xconv = self.convert_xunits(self._xorig)
if ma.isMaskedArray(self._xorig):
x = ma.asarray(xconv, float)
@@ -417,7 +420,7 @@
x = x.ravel()
else:
x = self._x
- if self._invalidy:
+ if always or self._invalidy:
yconv = self.convert_yunits(self._yorig)
if ma.isMaskedArray(self._yorig):
y = ma.asarray(yconv, float)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <md...@us...> - 2010-01-11 19:23:20
|
Revision: 8076
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8076&view=rev
Author: mdboom
Date: 2010-01-11 19:23:13 +0000 (Mon, 11 Jan 2010)
Log Message:
-----------
Fix centering of mathtext markers (thanks, tcb)
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2010-01-11 12:28:15 UTC (rev 8075)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2010-01-11 19:23:13 UTC (rev 8076)
@@ -898,7 +898,7 @@
height = ymax - ymin
max_dim = max(width, height)
path_trans = Affine2D() \
- .translate(0.5 * -width, 0.5 * -height) \
+ .translate(-xmin + 0.5 * -width, -ymin + 0.5 * -height) \
.scale((renderer.points_to_pixels(self.get_markersize()) / max_dim))
rgbFace = self._get_rgb_face()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2010-03-02 02:24:40
|
Revision: 8168
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8168&view=rev
Author: jdh2358
Date: 2010-03-02 02:24:34 +0000 (Tue, 02 Mar 2010)
Log Message:
-----------
fix alt kwarg for set_mfc
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2010-03-02 01:47:54 UTC (rev 8167)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2010-03-02 02:24:34 UTC (rev 8168)
@@ -1586,7 +1586,7 @@
def set_mfc(self, val):
'alias for set_markerfacecolor'
- self.set_markerfacecolor(val, alt=alt)
+ self.set_markerfacecolor(val)
def set_mfcalt(self, val):
'alias for set_markerfacecoloralt'
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jd...@us...> - 2010-03-02 13:12:23
|
Revision: 8170
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8170&view=rev
Author: jdh2358
Date: 2010-03-02 13:12:16 +0000 (Tue, 02 Mar 2010)
Log Message:
-----------
fixed invalidx bug in Line2D get_xydata
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2010-03-02 02:42:58 UTC (rev 8169)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2010-03-02 13:12:16 UTC (rev 8170)
@@ -659,7 +659,7 @@
"""
Return the *xy* data as a Nx2 numpy array.
"""
- if self._invalidy or self.invalidx:
+ if self._invalidy or self._invalidx:
self.recache()
return self._xy
@@ -831,7 +831,7 @@
def set_markerfacecolor(self, fc):
"""
- Set the marker face color.
+ Set the marker face color.
ACCEPTS: any matplotlib color
"""
@@ -842,7 +842,7 @@
def set_markerfacecoloralt(self, fc):
"""
- Set the alternate marker face color.
+ Set the alternate marker face color.
ACCEPTS: any matplotlib color
"""
@@ -1020,7 +1020,7 @@
path, path_trans, rgbFace)
transform = transform.rotate_deg(180.)
renderer.draw_markers(gc, righthalf, transform,
- path, path_trans, rgbFace_alt)
+ path, path_trans, rgbFace_alt)
_draw_pixel_transform = Affine2D().translate(-0.5, -0.5)
@@ -1041,7 +1041,7 @@
rgbFace = self._get_rgb_face()
fs = self.get_fillstyle()
if fs=='full':
- renderer.draw_markers(gc, Path.unit_circle(), transform,
+ renderer.draw_markers(gc, Path.unit_circle(), transform,
path, path_trans, rgbFace)
else:
rgbFace_alt = self._get_rgb_face(alt=True)
@@ -1118,8 +1118,8 @@
path, path_trans, rgbFace)
renderer.draw_markers(gc, mpath_alt, transform,
path, path_trans, rgbFace_alt)
-
+
def _draw_triangle_up(self, renderer, gc, path, path_trans):
self._draw_triangle(renderer, gc, path, path_trans, 'up')
@@ -1190,8 +1190,8 @@
path, path_trans, rgbFace)
renderer.draw_markers(gc, left, transform,
path, path_trans, rgbFace_alt)
-
+
def _draw_thin_diamond(self, renderer, gc, path, path_trans):
gc.set_snap(renderer.points_to_pixels(self._markersize) >= 3.0)
offset = renderer.points_to_pixels(self._markersize)
@@ -1238,7 +1238,7 @@
path, path_trans, rgbFace)
else:
verts = polypath.vertices
-
+
y = (1+np.sqrt(5))/4.
top = Path([verts[0], verts[1], verts[4], verts[0]])
bottom = Path([verts[1], verts[2], verts[3], verts[4], verts[1]])
@@ -1299,7 +1299,7 @@
def _draw_hexagon1(self, renderer, gc, path, path_trans):
- gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
+ gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
offset = 0.5 * renderer.points_to_pixels(self._markersize)
transform = Affine2D().scale(offset)
@@ -1338,7 +1338,7 @@
def _draw_hexagon2(self, renderer, gc, path, path_trans):
- gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
+ gc.set_snap(renderer.points_to_pixels(self._markersize) >= 5.0)
offset = 0.5 * renderer.points_to_pixels(self._markersize)
transform = Affine2D().scale(offset).rotate_deg(30)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2010-04-29 21:43:59
|
Revision: 8289
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8289&view=rev
Author: efiring
Date: 2010-04-29 21:43:53 +0000 (Thu, 29 Apr 2010)
Log Message:
-----------
Line2D: don't use subslices with markevery
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2010-04-29 16:18:09 UTC (rev 8288)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2010-04-29 21:43:53 UTC (rev 8289)
@@ -456,7 +456,8 @@
self._subslice = False
if (self.axes and len(x) > 100 and self._is_sorted(x) and
self.axes.name == 'rectilinear' and
- self.axes.get_xscale() == 'linear'):
+ self.axes.get_xscale() == 'linear' and
+ self._markevery is None):
self._subslice = True
if hasattr(self, '_path'):
interpolation_steps = self._path._interpolation_steps
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ef...@us...> - 2010-06-01 02:20:59
|
Revision: 8358
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8358&view=rev
Author: efiring
Date: 2010-06-01 02:20:53 +0000 (Tue, 01 Jun 2010)
Log Message:
-----------
Line2D: fix point picking with zoom and pan, when line-clipping is in effect.
Closes 2871992.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2010-06-01 01:30:19 UTC (rev 8357)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2010-06-01 02:20:53 UTC (rev 8358)
@@ -305,6 +305,8 @@
# If line, return the nearby segment(s)
ind = segment_hits(mouseevent.x,mouseevent.y,xt,yt,pixels)
+ ind += self.ind_offset
+
# Debugging message
if False and self._label != u'':
print "Checking line",self._label,"at",mouseevent.x,mouseevent.y
@@ -496,12 +498,14 @@
def draw(self, renderer):
if self._invalidy or self._invalidx:
self.recache()
+ self.ind_offset = 0 # Needed for contains() method.
if self._subslice and self.axes:
# Need to handle monotonically decreasing case also...
x0, x1 = self.axes.get_xbound()
i0, = self._x.searchsorted([x0], 'left')
i1, = self._x.searchsorted([x1], 'right')
subslice = slice(max(i0-1, 0), i1+1)
+ self.ind_offset = subslice.start
self._transform_path(subslice)
if self._transformed_path is None:
self._transform_path()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ry...@us...> - 2010-10-06 16:03:54
|
Revision: 8730
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8730&view=rev
Author: ryanmay
Date: 2010-10-06 16:03:48 +0000 (Wed, 06 Oct 2010)
Log Message:
-----------
contains() was relying on some attributes being set by draw(). Add code to make contains() not cause a traceback if draw() has not been called.
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/lines.py
Modified: trunk/matplotlib/lib/matplotlib/lines.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/lines.py 2010-10-06 16:00:27 UTC (rev 8729)
+++ trunk/matplotlib/lib/matplotlib/lines.py 2010-10-06 16:03:48 UTC (rev 8730)
@@ -248,6 +248,7 @@
# chance to init axes (and hence unit support)
self.update(kwargs)
self.pickradius = pickradius
+ self.ind_offset = 0
if is_numlike(self._picker):
self.pickradius = self._picker
@@ -283,6 +284,8 @@
if len(self._xy)==0: return False,{}
# Convert points to pixels
+ if self._transformed_path is None:
+ self._transform_path()
path, affine = self._transformed_path.get_transformed_path_and_affine()
path = affine.transform_path(path)
xy = path.vertices
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|