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
(19) |
2
(3) |
3
(12) |
4
(2) |
5
|
6
(9) |
7
(27) |
8
(39) |
9
(17) |
10
(22) |
11
(5) |
12
(1) |
13
(11) |
14
(12) |
15
(14) |
16
(29) |
17
(32) |
18
(8) |
19
(3) |
20
(10) |
21
(27) |
22
(11) |
23
(8) |
24
(4) |
25
(4) |
26
(3) |
27
(18) |
28
(7) |
29
(29) |
30
(13) |
31
(4) |
|
Eric Firing wrote: > > An alternative would be to use a locking mechanism to ensure that your > plotting function runs from start to end without interruption by > another thread. > Thanks. I'm now controlling access with a lock object and it's working fine. -Steve
Steve, I think the short answer is that the pylab interface is inherently single-threaded; it is intended to facilitate interactive plotting. It has a single list of figures, a concept of a single current figure, and within that a single current axes. If you use more than one thread, then thread B is liable to change the current figure or axes while thread A is in the middle of doing something with it. It is a recipe for chaos. Careful adherence to the Object-oriented interface that underlies the pylab interface should mostly solve the problem, because then each thread should be operating on its own figure and axes. I said "mostly" because there is still the global rcParams dictionary; you will need to be sure that your plotting threads treat it as read-only. There may be other such things that have not occurred to me. An alternative would be to use a locking mechanism to ensure that your plotting function runs from start to end without interruption by another thread. Eric Steve Bergman wrote: > I am using the method below to dynamically generate pie charts in my > TurboGears/CherryPy web app. Everything works fine until I increase the > number of application threads allowed to > 1. > > Then all manner of wierdness occurs. Pies charts which are not scaled > properly, which have the various wedges scaled differently from each > other, and incomplete pie charts. > > Am I doing something wrong? > > def pie_chart(self, **kw): > figure(1, figsize=(0.75,0.75), frameon=False) ax = axes([0.1, > 0.1, 0.8, 0.8]) > labels = 'Contract', 'Billable', 'Unbillable', 'Nonbill' > billable=float(kw['billable']) > contract=float(kw['contract']) > unbillable=float(kw['unbillable']) > nonbill=float(kw['nonbill']) > fracs = [contract,billable, unbillable,nonbill] > fig = pie(fracs, shadow=False, colors=('#70A0A0', > '#C0F090','#C03030', '#FFFFFF')) > fname = os.tmpnam() + ".png" > savefig(fname) > f=open(fname,'r') > x=f.read() > f.close() > os.remove(fname) > pylab.close() > return (x) > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live > webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
I am using the method below to dynamically generate pie charts in my TurboGears/CherryPy web app. Everything works fine until I increase the number of application threads allowed to > 1. Then all manner of wierdness occurs. Pies charts which are not scaled properly, which have the various wedges scaled differently from each other, and incomplete pie charts. Am I doing something wrong? def pie_chart(self, **kw): figure(1, figsize=(0.75,0.75), frameon=False) ax = axes([0.1, 0.1, 0.8, 0.8]) labels = 'Contract', 'Billable', 'Unbillable', 'Nonbill' billable=float(kw['billable']) contract=float(kw['contract']) unbillable=float(kw['unbillable']) nonbill=float(kw['nonbill']) fracs = [contract,billable, unbillable,nonbill] fig = pie(fracs, shadow=False, colors=('#70A0A0', '#C0F090','#C03030', '#FFFFFF')) fname = os.tmpnam() + ".png" savefig(fname) f=open(fname,'r') x=f.read() f.close() os.remove(fname) pylab.close() return (x)
I am using pylab in a web application server (TurboGears/CherryPy). I need to be able to render a plot (actually a pie) in png, jpg, or gif format directly into a variable that I can return to the application server. I'm currently using the rather ugly method of writing to a temp file and then reading it back in and returning the data. Is there a way to do this completely in memory? Thanks, Steve Bergman