You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
|
3
(6) |
4
(2) |
5
(7) |
6
(9) |
7
(8) |
8
(1) |
9
(1) |
10
(1) |
11
(11) |
12
(1) |
13
(11) |
14
(7) |
15
(1) |
16
|
17
|
18
(1) |
19
|
20
(1) |
21
(2) |
22
(1) |
23
(1) |
24
(2) |
25
(3) |
26
(2) |
27
(2) |
28
(2) |
29
(5) |
30
(1) |
|
|
|
|
|
|
From: Michiel de H. <mjl...@ya...> - 2013-06-25 14:11:27
|
Hi Thomas, As explained in this issue: https://github.com/matplotlib/matplotlib/issues/166 draw_artist does not work because it is being called from outside the event loop (or, to be exact, because draw_artist will only work if it is called from inside the drawing callback function that is called by the event loop). On some backends, you may get away with calling draw_artist from outside the event loop. However, this suggests a problem in the code design (for comparison, see this issue https://github.com/matplotlib/matplotlib/issues/531 on the animation code). As far as I know, the matplotlib documentation does not advertise the use of draw_artist, and there is no guarantee that it will work on all backends. If you can redesign your code such that draw_artist is called from inside the event loop, it should work OK on all backends. (though my first bet would also be to look at draw_idle). Best, -Michiel. ________________________________ From: Thomas Robitaille <tho...@gm...> To: Michael Droettboom <md...@st...> Cc: mat...@li... Sent: Tuesday, June 25, 2013 9:45 PM Subject: Re: [Matplotlib-users] Making an interactive plot faster Hi Mike, Thanks for the suggestion - however, this doesn't change the FPS. From my experiments so far, it seems using draw_artist would be the best bet, but any ideas why it doesn't work with the MacOS X backend? https://github.com/matplotlib/matplotlib/issues/166 Cheers, Tom On 24 June 2013 16:13, Michael Droettboom <md...@st...> wrote: > Have you tried using "draw_idle"? That will schedule the draw for the > next time the event loop is idle. > > Mike > > On 06/24/2013 07:39 AM, Thomas Robitaille wrote: >> Hi everyone, >> >> The following shows an example of a simple data viewer which includes >> a slider, a bitmap, and a scatter plot: >> >> """ >> import numpy as np >> from matplotlib import pyplot as plt >> from matplotlib.widgets import Slider >> >> fig = plt.figure() >> >> ax1 = fig.add_axes([0.1, 0.1, 0.4, 0.7]) >> image = ax1.imshow(np.random.random((512, 512)), vmin=0., vmax=1.) >> >> ax2 = fig.add_axes([0.1, 0.9, 0.85, 0.05]) >> ax2.set_xticklabels("") >> ax2.set_yticklabels("") >> slider = Slider(ax2, "", 0., 1.) >> >> def update_vmax(value): >> image.set_clim(0., value) >> fig.canvas.draw() >> >> slider.on_changed(update_vmax) >> >> ax3 = fig.add_axes([0.55, 0.1, 0.4, 0.7]) >> x = np.random.random(10000) >> y = np.random.random(10000) >> ax3.scatter(x, y) >> >> plt.show() >> """ >> >> When moving the slider, the vmax of the image changes, but I get very >> slow frame rates (~2/sec) on my computer with the MacOS X backend. I >> was wondering whether people here have any tips on speeding things up? >> >> As far as I can figure out, this is slow because both the slider and >> the callback function call ``fig.canvas.draw``. Slider calls it before >> the callback function, so I definitely need to draw things in that >> function, but I can get a factor of 2x speedup by doing >> >> slider.drawon = False >> >> which prevents ``canvas.draw()`` being called twice. However, this is >> still much too slow, so I started to look into using ``draw_artist`` >> to only update elements that need updating, but this requires >> partially re-implementing the Slider class. >> >> As a side note, using ``draw_artist`` also does not work on the MacOS X backend: >> >> https://github.com/matplotlib/matplotlib/issues/166 >> >> but I'm willing to have a solution that wouldn't work on this backend >> if it was the only way. >> >> Does anyone have a clean solution to increasing the frame rate of this example? >> >> Thanks! >> Tom >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Matplotlib-users mailing list Mat...@li... https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
From: Thomas R. <tho...@gm...> - 2013-06-25 12:46:09
|
Hi Mike, Thanks for the suggestion - however, this doesn't change the FPS. From my experiments so far, it seems using draw_artist would be the best bet, but any ideas why it doesn't work with the MacOS X backend? https://github.com/matplotlib/matplotlib/issues/166 Cheers, Tom On 24 June 2013 16:13, Michael Droettboom <md...@st...> wrote: > Have you tried using "draw_idle"? That will schedule the draw for the > next time the event loop is idle. > > Mike > > On 06/24/2013 07:39 AM, Thomas Robitaille wrote: >> Hi everyone, >> >> The following shows an example of a simple data viewer which includes >> a slider, a bitmap, and a scatter plot: >> >> """ >> import numpy as np >> from matplotlib import pyplot as plt >> from matplotlib.widgets import Slider >> >> fig = plt.figure() >> >> ax1 = fig.add_axes([0.1, 0.1, 0.4, 0.7]) >> image = ax1.imshow(np.random.random((512, 512)), vmin=0., vmax=1.) >> >> ax2 = fig.add_axes([0.1, 0.9, 0.85, 0.05]) >> ax2.set_xticklabels("") >> ax2.set_yticklabels("") >> slider = Slider(ax2, "", 0., 1.) >> >> def update_vmax(value): >> image.set_clim(0., value) >> fig.canvas.draw() >> >> slider.on_changed(update_vmax) >> >> ax3 = fig.add_axes([0.55, 0.1, 0.4, 0.7]) >> x = np.random.random(10000) >> y = np.random.random(10000) >> ax3.scatter(x, y) >> >> plt.show() >> """ >> >> When moving the slider, the vmax of the image changes, but I get very >> slow frame rates (~2/sec) on my computer with the MacOS X backend. I >> was wondering whether people here have any tips on speeding things up? >> >> As far as I can figure out, this is slow because both the slider and >> the callback function call ``fig.canvas.draw``. Slider calls it before >> the callback function, so I definitely need to draw things in that >> function, but I can get a factor of 2x speedup by doing >> >> slider.drawon = False >> >> which prevents ``canvas.draw()`` being called twice. However, this is >> still much too slow, so I started to look into using ``draw_artist`` >> to only update elements that need updating, but this requires >> partially re-implementing the Slider class. >> >> As a side note, using ``draw_artist`` also does not work on the MacOS X backend: >> >> https://github.com/matplotlib/matplotlib/issues/166 >> >> but I'm willing to have a solution that wouldn't work on this backend >> if it was the only way. >> >> Does anyone have a clean solution to increasing the frame rate of this example? >> >> Thanks! >> Tom >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
From: Jeff W. <jef...@no...> - 2013-06-25 00:09:42
|
> Goodman, Alexander (398J-Affiliate) > <mailto:ale...@jp...> > June 24, 2013 4:30 PM > Just something I thought I should add to this, but would the following > code seem like a reasonable workaround? Basically, since > map_coordinates() cannot handle mask arrays, I thought that perhaps > passing in the actual mask itself to interp() with order=3 may produce > close to reasonable results, eg: > > dataout = interp(datain, xin, yin, xout, yout, masked=True, order=3) > maskin = datain.mask.astype(int) > maskout = interp(datain.mask, xin, yin, xout, yout, order=3) > dataout.mask = dataout.mask | maskout > > Thanks, > Alex > > > ------------------------------------------------------------------------ Alex: The basemap.interp docstring includes a note describing a trick I often use with masked arrays: Note If datain is a masked array and order=1 (bilinear interpolation) is used, elements of dataout will be masked if any of the four surrounding points in datain are masked. To avoid this, do the interpolation in two passes, first with order=1 (producing dataout1), then with order=0 (producing dataout2). Then replace all the masked values in dataout1 with the corresponding elements in dataout2 (using numpy.where). This effectively uses nearest neighbor interpolation if any of the four surrounding points in datain are masked, and bilinear interpolation otherwise. I suppose the same trick might work with order=3, but I have never tried it. -Jeff |