SourceForge logo
SourceForge logo
Menu

matplotlib-devel — matplotlib developers

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)


Showing 2 results of 2

From: Eric F. <ef...@ha...> - 2007年05月09日 17:52:40
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
From: Tim L. <tim...@gm...> - 2007年05月09日 14:15:11
Attachments: collections.patch
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

Showing 2 results of 2

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





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

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

More information about our ad policies

Ad destination/click URL:

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