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
(3) |
2
(21) |
3
(16) |
4
(4) |
5
(7) |
6
(1) |
7
(2) |
8
(12) |
9
(23) |
10
(6) |
11
(2) |
12
(1) |
13
(1) |
14
(4) |
15
(14) |
16
(7) |
17
(15) |
18
(12) |
19
(5) |
20
|
21
(1) |
22
(7) |
23
(7) |
24
(6) |
25
(5) |
26
(9) |
27
(6) |
28
(4) |
29
(4) |
30
(27) |
|
|
|
I noticed that the pcolor function uses about twice as much memory as it = needs to. When creating the list of vertices, you first create the lists = X1, Y1, X2, Y2, X3, Y3, X4, and Y4, and then combine those lists into = the "verts" list. I tried to change it to make it not waste memory by = changing the lines between the line: mask =3D ma.getmaskarray(C)[0:Nx-1,0:Ny-1]+xymask and C =3D compress(ravel(mask=3D=3D0),ravel(ma.filled(C[0:Nx-1,0:Ny-1]))) to the following: numVertices =3D = len(compress(ravel(mask=3D=3D0),ravel(ma.filled(X[0:-1,0:-1])))) verts =3D zeros((numVertices, 4, 2)) verts[:, 0, 0] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(X[0:-1,0:-1]))) verts[:, 0, 1] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(Y[0:-1,0:-1]))) verts[:, 1, 0] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(X[1:,0:-1]))) verts[:, 1, 1] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(Y[1:,0:-1]))) verts[:, 2, 0] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(X[1:,1:]))) verts[:, 2, 1] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(Y[1:,1:]))) verts[:, 3, 0] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(X[0:-1,1:]))) verts[:, 3, 1] =3D = compress(ravel(mask=3D=3D0),ravel(ma.filled(Y[0:-1,1:]))) However it says that the "array cannot be safely cast to required type" = on the third line (verts[:, 0, 0] =3D ...). I have no idea why this is = happening because both arrays are the same length (numVertices). Does = anyone have any ideas how to fix this problem? Also, if I do get this working, is there a way to submit it as a patch? = Having a pcolor function that doesn't use up so much memory might be = useful for lot of people, not just me. -Alex Mont
>>>>> "Clovis" == Clovis Goldemberg <cl...@pe...> writes: Clovis> The question is: "why isn't the memory collected after Clovis> closing the figure?". The real program I developed builds Clovis> 5~15 graphic windows and the required memory is very Clovis> large. It is, or it should be. Look at the module _pylab_helpers, particularly this function which is called when a window is destroyed def destroy(num): if not Gcf.has_fignum(num): return figManager = Gcf.figs[num] oldQue = Gcf._activeQue[:] Gcf._activeQue = [] for f in oldQue: if f != figManager: Gcf._activeQue.append(f) del Gcf.figs[num] #print len(Gcf.figs.keys()), len(Gcf._activeQue) figManager.destroy() gc.collect() ie, we make an explicit call to the garbage collector when a figure is destroyed from within pylab. I'm not sure why you are not seeing the memory freed up, but I believe garbage collection is a bit of a mystery about what happens where. I tend to rely on a script called unit/memleak_hawaii3.py which is in matplotlib CVS to test for memory leaks. Unfortunately this works only on linux and friends because it uses ps to collect memory usage. Typically we like to see total memory asymptote out at around 10 to 30 figures and cease climbing. If it climbs monotonically with figure number, it's indicative of a leak. For reasons beyond me, the memory consumption doesn't stabilize for the first N figures, where N is an arbitrary but smallish number. I don't think this has to do with matplotlib as much as with the python garbage collector. If you get a chance to test this script on linux, I would be interested to hear what you find. If someone else knows more about python's gc, please pipe in. JDH
Using matplotlib 0.84, python 2.4, scipy 0.3.2, numeric 23.7. date_demo3.py does not work as is. Below is a 'diff' file that will create a date_demo3.py that does what I think the original intended to do. ------------------------ wjd@plum ~/test $ diff date_demo3.py ../matplotlib_examples/date_demo3.py 8c8 < import datetime --- > from datetime import datetime 10c10,12 < from pylab import date2num,array,rand,subplot,HourLocator,MinuteLocator,DateFormatter,bar,show --- > from matplotlib.dates import intdate > from matplotlib.ticker import MinuteLocator, DateFormatter > from matplotlib.matlab import * 13,14c15,16 < t0 = datetime.datetime(2004,04,27) < t = array([date2num(t0+datetime.timedelta(minutes=2*i)) for i in range(60)]) --- > t0 = time.mktime(datetime(2004,04,27).timetuple()) > t = t0+arange(0, 2*3600, 60) # 2 hours sampled every 2 minute 18c20 < ax.xaxis.set_major_locator( MinuteLocator(byminute=range(0,60,20) )) --- > ax.xaxis.set_major_locator( MinuteLocator(20) ) 20,21c22 < #1 bar every 2 minutes, bar width = space between bars, 1440 minutes per day < bar(t, s, width=1.0/1440) --- > bar(t, s, width=60) 22a24,26 ----------------------------------- Bill
Using matplotlib 0.84, python 2.4, scipy 0.3.2, numeric 23.7 I get errors when running date_demo_rrule.py. Since the demo scripts are for educational purposes and primarily used by newbies, I have a couple of suggestions. 1. Don't use import *, import the specific functions used in the demo. I've had problems with this (especially in the interpreter) because many Python modules use the same names in their global name space and it's easy to inadvertently replace one function with another of the same name which introduces bugs that can be difficult to find. 2. Don't import functions from submodules, instead use the submodule name when calling the function. It makes it much clearer to see where the function came from. The set function seems to be broken (or it's a typo), I had to replace it with the setp function to get the demo to run. Below it the results of diff between my working version of the demo and the original that won't run: --------------------------------- wjd@plum ~/test $ diff date_demo_rrule.py ../matplotlib_examples/date_demo_rrule.py 8c8,10 < from pylab import dates, YEARLY, drange, rand, subplot, plot_date, setp, show --- > from pylab import * > from matplotlib.dates import YEARLY, DateFormatter, \ > rrulewrapper, RRuleLocator, drange 11d12 < 13,15c14,16 < rule = dates.rrulewrapper(YEARLY, byeaster=1, interval=5) < loc = dates.RRuleLocator(rule) < formatter = dates.DateFormatter('%m/%d/%y') --- > rule = rrulewrapper(YEARLY, byeaster=1, interval=5) > loc = RRuleLocator(rule) > formatter = DateFormatter('%m/%d/%y') 29c30 < setp(labels, rotation=30, fontsize=10) --- > set(labels, rotation=30, fontsize=10) --------------------------------- Bill
This question is related to memory usage (and garbage collection) with=20 matplotlib. Some very simple examples are shown below. These results were obtained=20 in a Windows XP box but some similar results were also observed under Linux. First=20 column shows the memory allocated just after the execution of the command shown in the second=20 column. Test #1 Mem Usage Action 3152K Python Command Line Opened 15700K from pylab import * 15700K a =3D arange(0, 10) 19820K figure(1) 19988K plot(a, a) 22288K show() 20100K Memory usage after closing graphic window Test #2 Mem Usage Action 3148K Python Command Line Opened 15700K from pylab import * 15700K a =3D arange(0, 10) 19820K figure(1) 19988K plot(a, a) 22288K show() 20100K Memory usage after closing graphic window Test #3 Mem Usage Action 3148K Python Command Line Opened 15700K from pylab import * 19808K figure(1) 19812K a =3D arange(0, 10) 19980K plot(a, a) 22272K show() 20112K Memory usage after closing graphic window The question is: "why isn't the memory collected after closing the=20 figure?". The real program I developed builds 5~15 graphic windows and the required memory=20 is very large. Prof. Clovis Goldemberg University of S=E3o Paulo
Dear list, does anyone know an easy way to zoom a part of a canvas and put it in a new axes, like is done in the demo of axes? http://matplotlib.sourceforge.net/screenshots/axes_demo_small.png Regards, Joost -- Joost van Evert Information and Communication Theory Group (ICT) Department of Mediamatica (MM) Faculty of Electrical Engineering, Mathematics and Computer Science (EEMCS) Delft University of Technology (TUD) Mekelweg 4 Office: HB11.110 2628 CD Delft, the Netherlands Phone: +31 (0) 15 - 27 85436 Mobile: +31 (0) 6 - 41 11 56 84 Email: j.g...@ew... Url: http://ict.ewi.tudelft.nl/~joost