You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(33) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(44) |
Mar
(51) |
Apr
(43) |
May
(43) |
Jun
(36) |
Jul
(61) |
Aug
(44) |
Sep
(25) |
Oct
(82) |
Nov
(97) |
Dec
(47) |
2005 |
Jan
(77) |
Feb
(143) |
Mar
(42) |
Apr
(31) |
May
(93) |
Jun
(93) |
Jul
(35) |
Aug
(78) |
Sep
(56) |
Oct
(44) |
Nov
(72) |
Dec
(75) |
2006 |
Jan
(116) |
Feb
(99) |
Mar
(181) |
Apr
(171) |
May
(112) |
Jun
(86) |
Jul
(91) |
Aug
(111) |
Sep
(77) |
Oct
(72) |
Nov
(57) |
Dec
(51) |
2007 |
Jan
(64) |
Feb
(116) |
Mar
(70) |
Apr
(74) |
May
(53) |
Jun
(40) |
Jul
(519) |
Aug
(151) |
Sep
(132) |
Oct
(74) |
Nov
(282) |
Dec
(190) |
2008 |
Jan
(141) |
Feb
(67) |
Mar
(69) |
Apr
(96) |
May
(227) |
Jun
(404) |
Jul
(399) |
Aug
(96) |
Sep
(120) |
Oct
(205) |
Nov
(126) |
Dec
(261) |
2009 |
Jan
(136) |
Feb
(136) |
Mar
(119) |
Apr
(124) |
May
(155) |
Jun
(98) |
Jul
(136) |
Aug
(292) |
Sep
(174) |
Oct
(126) |
Nov
(126) |
Dec
(79) |
2010 |
Jan
(109) |
Feb
(83) |
Mar
(139) |
Apr
(91) |
May
(79) |
Jun
(164) |
Jul
(184) |
Aug
(146) |
Sep
(163) |
Oct
(128) |
Nov
(70) |
Dec
(73) |
2011 |
Jan
(235) |
Feb
(165) |
Mar
(147) |
Apr
(86) |
May
(74) |
Jun
(118) |
Jul
(65) |
Aug
(75) |
Sep
(162) |
Oct
(94) |
Nov
(48) |
Dec
(44) |
2012 |
Jan
(49) |
Feb
(40) |
Mar
(88) |
Apr
(35) |
May
(52) |
Jun
(69) |
Jul
(90) |
Aug
(123) |
Sep
(112) |
Oct
(120) |
Nov
(105) |
Dec
(116) |
2013 |
Jan
(76) |
Feb
(26) |
Mar
(78) |
Apr
(43) |
May
(61) |
Jun
(53) |
Jul
(147) |
Aug
(85) |
Sep
(83) |
Oct
(122) |
Nov
(18) |
Dec
(27) |
2014 |
Jan
(58) |
Feb
(25) |
Mar
(49) |
Apr
(17) |
May
(29) |
Jun
(39) |
Jul
(53) |
Aug
(52) |
Sep
(35) |
Oct
(47) |
Nov
(110) |
Dec
(27) |
2015 |
Jan
(50) |
Feb
(93) |
Mar
(96) |
Apr
(30) |
May
(55) |
Jun
(83) |
Jul
(44) |
Aug
(8) |
Sep
(5) |
Oct
|
Nov
(1) |
Dec
(1) |
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(1) |
Oct
(3) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(7) |
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
|
2
|
3
(2) |
4
|
5
|
6
|
7
|
8
|
9
(2) |
10
(5) |
11
|
12
(1) |
13
|
14
|
15
(3) |
16
|
17
(3) |
18
(9) |
19
|
20
(2) |
21
|
22
|
23
(7) |
24
(4) |
25
(1) |
26
|
27
|
28
(1) |
29
(1) |
30
|
31
(12) |
|
|
Tim, Based on a *very superficial* quick look, I have two comments: 1) Since the plan is (or was?) to have one more release before specializing to numpy-only support, the ".T" won't work at present. 2) In the following (possibly mangled by mailer), > + if Nsizes == 1: > + xy = asarray([xverts, yverts]).T * sizes[0] > + polys = [xy + offset for offset in transOffset.seq_xy_tups(self._offsets)] I think you can gain additional speedup by eliminating the list comprehension. Instead of using seq_xy_tups you can use numerix_xy to return a 2-D array (with columns x and y), and simply add that to xy. Eric Tim Leslie wrote: > Hi All, > > I've attached a patch which optimizes a particular case of the > RegularPolyCollection.get_transformed_patches method. This is > particularly useful when using a picker on a scatter plot with ~40,000 > points (as I happen to be doing) and cuts the time spent in this > function from ~4s to ~1s, which accounts for about 50% of the lag in > my particular use case. > > Similar improvements might be possible in the N > 1 case, but I don't > have a) a data set or b) the time to work them out with, so hopefully > someone is happy to check in this patch as it stands, as I think the > N==1 is probably the common case. > > If there are any problems with the patch let me know and I'll try to > fix it up. It's against latest svn (3262) > > Cheers, > > Tim > > > ------------------------------------------------------------------------ > > Index: lib/matplotlib/collections.py > =================================================================== > --- lib/matplotlib/collections.py (revision 3262) > +++ lib/matplotlib/collections.py (working copy) > @@ -153,7 +153,7 @@ > if not self.pickable(): return > ind = [] > x, y = mouseevent.x, mouseevent.y > - for i, thispoly in enumerate(self.get_transformed_patches()): > + for i, thispoly in enumerate(self.get_transformed_patches()): > inside = nxutils.pnpoly(x, y, thispoly) > if inside: ind.append(i) > if len(ind): > @@ -167,7 +167,6 @@ > The ith element in the returned sequence is a list of x,y > vertices defining the ith polygon > """ > - > verts = self._verts > offsets = self._offsets > usingOffsets = offsets is not None > @@ -451,13 +450,19 @@ > __init__.__doc__ = dedent(__init__.__doc__) % kwdocd > > def get_transformed_patches(self): > - > + > xverts, yverts = zip(*self._verts) > xverts = asarray(xverts) > yverts = asarray(yverts) > sizes = sqrt(asarray(self._sizes)*self._dpi.get()/72.0) > Nsizes = len(sizes) > transOffset = self.get_transoffset() > + > + # optimize this case for an approx 4x speedup > + if Nsizes == 1: > + xy = asarray([xverts, yverts]).T * sizes[0] > + polys = [xy + offset for offset in transOffset.seq_xy_tups(self._offsets)] > + > polys = [] > for i, loc in enumerate(self._offsets): > xo,yo = transOffset.xy_tup(loc) > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Hi All, I've attached a patch which optimizes a particular case of the RegularPolyCollection.get_transformed_patches method. This is particularly useful when using a picker on a scatter plot with ~40,000 points (as I happen to be doing) and cuts the time spent in this function from ~4s to ~1s, which accounts for about 50% of the lag in my particular use case. Similar improvements might be possible in the N > 1 case, but I don't have a) a data set or b) the time to work them out with, so hopefully someone is happy to check in this patch as it stands, as I think the N==1 is probably the common case. If there are any problems with the patch let me know and I'll try to fix it up. It's against latest svn (3262) Cheers, Tim