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
(5) |
2
(17) |
3
(13) |
4
(17) |
5
(26) |
6
(13) |
7
(9) |
|
8
(8) |
9
(13) |
10
(25) |
11
(19) |
12
(24) |
13
(12) |
14
|
|
15
|
16
(5) |
17
(10) |
18
(7) |
19
|
20
(7) |
21
(2) |
|
22
(3) |
23
(11) |
24
(19) |
25
(17) |
26
(6) |
27
(10) |
28
(2) |
|
29
(4) |
30
(15) |
|
|
|
|
|
|
From: Suresh P. <sto...@ya...> - 2007-04-02 19:27:02
|
So I been using the log scale provided by matplotlib.colors.LogNorm, but have been seing bizarre behaviour. Basically, high values are not displayed properly. I give simple examples below with just two possible values in the matrix, but all the same issues arise with more varied values. First notice that the high value (100000) is displayed as being of value=1: from pylab import * from matplotlib.colors import LogNorm matrix = ones((30,30)) matrix = matrix*440 matrix[29,29] = 100000 matshow(matrix, norm=LogNorm(vmin=1, vmax=1000000)) colorbar() show() The cutoff value for incorrect display (for the scale I am using) seems to be at 32000: from pylab import * from matplotlib.colors import LogNorm matrix = ones((30,30)) matrix = matrix*440 matrix[29,29] = 32000 matshow(matrix, norm=LogNorm(vmin=1, vmax=1000000)) colorbar() show() However, if the value is really high, the color displayed changes again, although still not to the correct color (please try with values 918000, 920000, and 999000 to see see it progress): from pylab import * from matplotlib.colors import LogNorm matrix = ones((30,30)) matrix = matrix*440 matrix[29,29] = 918000 matshow(matrix, norm=LogNorm(vmin=1, vmax=1000000)) colorbar() show() And if one specifies no limits to LogNorm, the colorbar displayed is incomplete and the colour displayed is wrong in a different way then when specifying the limits (try value = 999000 as well). from pylab import * from matplotlib.colors import LogNorm matrix = ones((30,30)) matrix = matrix*440 matrix[29,29] = 918000 matshow(matrix, norm=LogNorm()) colorbar() show() Either I am completely missing something or there is a major bug. I am using mpl checked out from svn on 26 March. Thanks, Suresh |
|
From: Steve S. <el...@gm...> - 2007-04-02 16:57:19
|
massimo sandal wrote: > javi markez bigara ha scritto: >> hi everyone, >> i would like to know how to plot several linear regresions with the >> same group of points,,,, Don't understand exactly what you want to do ... > > what do you mean? > > however, if you dig the matplotlib and the scipy documentation, you'll > find (a)how to plot points (easy) (b)how to calculate linear regressions > (this one is less straightforward than it should be, however now I don't > remember the details - I can check my code if you have trouble in > finding it by yourself). One easy possibility (using numpy): In [8]: import numpy as N # make some sample data with noise In [9]: x = N.linspace(0,10,100); y = 3*x + 5 + N.random.randn(len(x))*3 In [10]: p = N.polyfit(x, y, 1) In [11]: p Out[11]: array([ 3.02862193, 5.14341042]) In [12]: plot(x, y, 'o') Out[12]: [<matplotlib.lines.Line2D instance at 0xa376aacc>] In [13]: plot(x, N.polyval(p,x), 'r') Out[13]: [<matplotlib.lines.Line2D instance at 0xa37734cc>] Note: matplotlib also has random numbers (e.g. pylab.randn, but I think this is imported from numpy), as well as linspace and also polyfit and polyval, so importing numpy wouldn't even be necessary here. Another lin. reg. function is scipy.stats.linregress .... All roads lead to Rome. -- cheers, steve Random number generation is the art of producing pure gibberish as quickly as possible. |
|
From: massimo s. <mas...@un...> - 2007-04-02 15:45:18
|
javi markez bigara ha scritto: > hi everyone, > i would like to know how to plot several linear regresions with the same > group of points,,,, > THANKS IN ADVANCE what do you mean? however, if you dig the matplotlib and the scipy documentation, you'll find (a)how to plot points (easy) (b)how to calculate linear regressions (this one is less straightforward than it should be, however now I don't remember the details - I can check my code if you have trouble in finding it by yourself). do you use pylab or matplotlib embedded in something? m. -- Massimo Sandal University of Bologna Department of Biochemistry "G.Moruzzi" snail mail: Via Irnerio 48, 40126 Bologna, Italy email: mas...@un... tel: +39-051-2094388 fax: +39-051-2094387 |
|
From: javi m. b. <no...@ho...> - 2007-04-02 14:28:21
|
hi everyone, i would like to know how to plot several linear regresions with the same group of points,,,, THANKS IN ADVANCE _________________________________________________________________ Descubre la descarga digital con MSN Music. Más de un millón de canciones. http://music.msn.es/ |
|
From: Jeff W. <js...@fa...> - 2007-04-02 13:26:35
|
Simon Kammerer wrote:
> Hi list,
>
>
> when using clabel with basemap, it seems to me that clabel labels
> contours outside the visible area of my maps, (see attached example).
>
> Any hints / workarounds? Or am I missing something?
>
> Regards
> Simon
>
>
>
Simon: Yes, that's right - much of the data you are contouring falls
outside the visible range of your map, and clabel doesn't know that.
The only workaround I can think of is to only contour the data that's
within the map you're interested in. One way to do this would be to
create a masked array, with all the points outside the map region
masked. The basemap instance has attributes xmin,xmax,ymin,ymax which
define the corners of the map in projection coordinates - you can use
these to determine which points on your grid are outside. Here's a
modified version of your example that does this:
from matplotlib.toolkits.basemap import Basemap
import pylab as p
from matplotlib.numerix import ma
map = Basemap(llcrnrlon=-35.,llcrnrlat=25.,urcrnrlon=65.,urcrnrlat=55.,
resolution='l',area_thresh=1000.,projection='stere',lat_0=60.,lon_0=0.)
# draw coastlines, country boundaries, fill continents.
map.drawcoastlines()
map.drawcountries()
map.fillcontinents(color='coral')
# draw the edge of the map projection region (the projection limb)
#map.drawmapboundary()
# draw lat/lon grid lines every 30 degrees.
map.drawmeridians(p.arange(0,360,30))
map.drawparallels(p.arange(-90,90,30))
# make up some data on a regular lat/lon grid.
nlats = 73; nlons = 145; delta = 2.*p.pi/(nlons-1)
lats = (0.5*p.pi-delta*p.indices((nlats,nlons))[0,:,:])
lons = (delta*p.indices((nlats,nlons))[1,:,:])
wave = 0.75*(p.sin(2.*lats)**8*p.cos(4.*lons))
mean = 0.5*p.cos(2.*lats)*((p.sin(2.*lats))**2 + 2.)
# compute native map projection coordinates of lat/lon grid.
x, y = map(lons*180./p.pi, lats*180./p.pi)
mask1 = x < map.xmin
mask2 = x > map.xmax
mask3 = y > map.ymax
mask4 = y < map.ymin
mask = mask1+mask2+mask3+mask4
data = ma.masked_array(wave+mean,mask=mask)
# contour data over the map.
cs = map.contour(x,y,data,15,linewidths=1.5)
p.clabel(cs)
p.show()
-Jeff
|
|
From: Simon K. <sim...@we...> - 2007-04-02 12:46:41
|
Hi list,
when using clabel with basemap, it seems to me that clabel labels
contours outside the visible area of my maps, (see attached example).
Any hints / workarounds? Or am I missing something?
Regards
Simon
[Modified wiki_example.py, labels visible with ortho projection, labels
not visible with stere projection]
from matplotlib.toolkits.basemap import Basemap
import pylab as p
# set up orthographic map projection with
# perspective of satellite looking down at 50N, 100W.
# use low resolution coastlines.
#map = Basemap(projection='ortho',lat_0=50,lon_0=-100,resolution='l')
map = Basemap(llcrnrlon=-35.,llcrnrlat=25.,urcrnrlon=65.,urcrnrlat=55.,\
resolution='l',area_thresh=1000.,projection='stere', lat_0=60.,lon_0=0.)
# draw coastlines, country boundaries, fill continents.
map.drawcoastlines()
map.drawcountries()
map.fillcontinents(color='coral')
# draw the edge of the map projection region (the projection limb)
map.drawmapboundary()
# draw lat/lon grid lines every 30 degrees.
map.drawmeridians(p.arange(0,360,30))
map.drawparallels(p.arange(-90,90,30))
# lat/lon coordinates of five cities.
lats=[40.02,34.00,38.55,48.25,17.29]
lons=[-105.16,-119.40,-77.00,-114.21,-88.10]
cities=['Boulder, CO','Santa Cruz, CA',
'Washington, DC','Whitefish, MT','Belize City, Belize']
# compute the native map projection coordinates for cities.
x,y = map(lons,lats)
# plot filled circles at the locations of the cities.
map.plot(x,y,'bo')
# plot the names of those five cities.
for name,xpt,ypt in zip(cities,x,y):
p.text(xpt+50000,ypt+50000,name)
# make up some data on a regular lat/lon grid.
nlats = 73; nlons = 145; delta = 2.*p.pi/(nlons-1)
lats = (0.5*p.pi-delta*p.indices((nlats,nlons))[0,:,:])
lons = (delta*p.indices((nlats,nlons))[1,:,:])
wave = 0.75*(p.sin(2.*lats)**8*p.cos(4.*lons))
mean = 0.5*p.cos(2.*lats)*((p.sin(2.*lats))**2 + 2.)
# compute native map projection coordinates of lat/lon grid.
x, y = map(lons*180./p.pi, lats*180./p.pi)
# contour data over the map.
cs = map.contour(x,y,wave+mean,15,linewidths=1.5)
p.clabel(cs)
p.show()
|
|
From: massimo s. <mas...@un...> - 2007-04-02 11:01:39
|
Giorgio Luciano ha scritto: > I'm aware that python/scipy were not started as a clone matlab (well > matlibplot was started as something similar ;) Yes, matplotlib AFAIK wanted (and probably wants) to be something similar, and it's bad, because mpl is too good in itself to be forced to be just a matlab ripoff! :) > and also that they should be taught as an language (and that's why I > prefer to use it an not to shol very useful programs like OCTAVE od > Scilab.. it's better for students to hava a curriculum with a true > programming language than with a metalanguage). That's really good and I fully agree. > I have to admit also that if someone there sooner or later would create > a workspace similar to matlab (with paste and copy, and more interactive > feature without tweaking too much) a lot more people would be glade to > replace their matlab with scipy/matplotlib. A pythonic interacting environment IMHO should be a nice application in itself to write. It should have its own shell instead of relying on ipython (that is, it should not be a python shell, or a python shell *really* on steroids). I'd like to hear the pylab guys to know what they think. m. -- Massimo Sandal University of Bologna Department of Biochemistry "G.Moruzzi" snail mail: Via Irnerio 48, 40126 Bologna, Italy email: mas...@un... tel: +39-051-2094388 fax: +39-051-2094387 |
|
From: Simon K. <sim...@we...> - 2007-04-02 10:25:49
|
Hi list, is there a way to force clabel to label all contour lines? Regards Simon |
|
From: Werner F. B. <wer...@fr...> - 2007-04-02 09:47:35
|
Hi Archana, Archana Ganesan wrote: > Hi, > > I tried following the instructions at the py2exe site and I have also > uncommeneted and made it include the matplotlib.numerix package. Still > it doesnt seem to work. Is there any other way of compiling it into an > executable? Did you try to compile the sample I enclosed the other day? Did that work? If not what error are you getting. Are you using numpy or ? Provide a small sample (with no dependencies if possible) which does not work for you with the corresponding setup.py. Werner |
|
From: Mark B. <ma...@gm...> - 2007-04-02 08:04:12
|
Dear List - Thanks for the discussion on the issue of the real strength of the Python/matplotlib/numpy/scipy combo. I use Python for both development and teaching, but my biggest question concerned teaching. When I teach, I need something easy and powerful, but also something that is easy to install and 'feels' like other Windows software. Furthermore, I don't want to teach them matlab (too expensive and too restrictive) or any of its clones (cheaper, but still too restrictive). So I settled on Python with matplotlib and am very happy with it. In class, we always use it in interactive mode. I use IDLE because it has a nice Windows feel to it and it comes with an editor, even though I understand that ipython is much more powerful. It is my experience that one of the big hurdles of using the Python/matplotlib/numpy/scipy combo is installation. Many people are just not comfortable installing a whole bunch of packages to get something to work. In that respect the Enthought edition has been super (my only request to them would be to make a new version available more frequent, but I know they do this all for free so I even feel bad asking). Regarding the "don't confuse the newbie" comment, I disagree. Many people that come with a small programming background or a matlab background don't get confused with the current documentation. I think it is pretty well done. Maybe we need separate docs for inexperienced and experienced programmers? The changes I suggested were to get more inexperienced programmers to join the Python/matplotlib/numpy/scipy world. I was re-reading the documentation on numpy in the bus this morning, in preperation for a workshop I got to give (to mostly matlab guys). And boy, is numpy nice. I have given the workshop several times, but always with Numeric. I got quite some converts to matplotlib (from matlab) just because they like the graphical output much better. Mark |
|
From: Giorgio L. <gio...@ch...> - 2007-04-02 07:50:18
|
Thank for all the reply. I will sure have a look at the video that Oliver suggest and I also downloaded Eclipse. I'm "happy" that someone also shared my problems in teaching python. I'm aware that python/scipy were not started as a clone matlab (well matlibplot was started as something similar ;) and also that they should be taught as an language (and that's why I prefer to use it an not to shol very useful programs like OCTAVE od Scilab.. it's better for students to hava a curriculum with a true programming language than with a metalanguage). I have to admit also that if someone there sooner or later would create a workspace similar to matlab (with paste and copy, and more interactive feature without tweaking too much) a lot more people would be glade to replace their matlab with scipy/matplotlib. Giorgio |
|
From: Chelonian <cmp...@gm...> - 2007-04-02 04:28:00
|
Peter L. Buschman wrote: > > > Okay, removing the frame turns out to work like this. > > ax=gca() > setp(ax, frame_on=False) > I'm new to matplotlib, and I can't even get this to work (let alone the other fix of changing the colors). Could you elaborate about how to implement this? I've tried putting these lines in the __init__ of the PlotPanel() class, but I can't get it. Any help is appreciated, thank you. -- View this message in context: http://www.nabble.com/Removing-the-black-border-around-a-plot--tf3409211.html#a9785048 Sent from the matplotlib - users mailing list archive at Nabble.com. |
|
From: Eric F. <ef...@ha...> - 2007-04-02 00:26:05
|
Antonino Ingargiola wrote: > On 4/1/07, Antonino Ingargiola <tri...@gm...> wrote: >> On 3/29/07, Ken McIvor <mc...@ii...> wrote: > [cut] >>>> The last think I'm not yet able to do is to update the colorbar to >>>> autoscale with the new incoming data. The the script that follows >>>> tries to update the colorbar too but it does not work (on matplotlib >>>> 0.87 at least). >>> I have no idea if this will help, but you might need to call >>> AxesImage.changed() after calling AxesImage.set_data(). >> That doesn't help :(. I'm not jet able to update the colorbar once the >> image has changed. I have made a change in svn that should solve the problem. Now the following sequence works as expected (illustrated with ipython -pylab): In [1]:IM = imshow(rand(3,4)) In [2]:CB = colorbar() In [3]:IM.set_data(10*rand(3,4)) In [4]:draw() In [5]:IM.autoscale() In [6]:draw() In [7]:IM.set_clim((0,20)) In [8]:draw() The colorbar tracks the image, and either IM.autoscale or IM.set_clim causes the color mapping range to change for both the colorbar and the image. Eric > > I've found a way to update the colorbar after the image has changed: > > image = imshow(data) > colr_bar = colorbar() > > ... > > image.set_data(new_data) > image.changed() > color_bar.set_clim(vmax=newdata.max()) > draw() > > The autoscale() colorbar method does not work to update a colorbar, > but with the above code I can acheive the same result. > > Thanks again. > > ~ Antonio |
|
From: Archana G. <arc...@gm...> - 2007-04-01 17:06:40
|
Hi,
I tried following the instructions at the py2exe site and I have also
uncommeneted and made it include the matplotlib.numerix package. Still it
doesnt seem to work. Is there any other way of compiling it into an
executable?
Thanks,
Archana.
On 4/1/07, Werner F. Bruhin <wer...@fr...> wrote:
>
> Hi Archana,
>
> Sometimes py2exe can't figure out what needs to be included. In these
> cases one creates entries in the packages section to force the inclusion
> of one or multiple packages.
>
> Archana Ganesan wrote:
> > Hi all,
> > ...
> >
> > options = {"py2exe": {"compressed": 1,
> > "optimize": 2,
> > "packages": ["encodings",
> > ## "kinterbasdb",
> > "pytz.zoneinfo.UTC",
> > #" matplotlib.numerix",
> >
>
> You need to activate/un-comment the matplotlib.numerix line. Also note
> that if you only include UTC and you use the timezone stuff in matplot
> then a user NOT using UTC, i.e. another timezone will have a problem, it
> is therefore better to just include all of pytz.
>
> Werner
>
|
|
From: Antonino I. <tri...@gm...> - 2007-04-01 11:12:15
|
On 3/30/07, Richard Brown <rg...@gm...> wrote:
> On 30/03/07, bre...@un...
> <bre...@un...> wrote:
> >
> > Not sure what region[:] is supposed to achieve. You are creating a copy
> > with the same name, so you are over-riding the original variable.
> >
>
> That doesn't seem to be the case - it returns the right thing on the
> first call - i.e. region got changed, but on subsequent calls the
> figure is displayed and the function returns array([0,0,0,0]). I
> thought taking the slice just gave access to the internals of region
> ...
>
> How does one assign a new value to a variable in a containing scope?
You can declare the "region" variable as global in keypressed():
def keypressed(event):
global region
region = ...
and "region" does not need to get initialized in the containing scope.
Cheers,
~ Antonio
|
|
From: Antonino I. <tri...@gm...> - 2007-04-01 10:59:09
|
On 4/1/07, Antonino Ingargiola <tri...@gm...> wrote:
> On 3/29/07, Ken McIvor <mc...@ii...> wrote:
[cut]
> > > The last think I'm not yet able to do is to update the colorbar to
> > > autoscale with the new incoming data. The the script that follows
> > > tries to update the colorbar too but it does not work (on matplotlib
> > > 0.87 at least).
> >
> > I have no idea if this will help, but you might need to call
> > AxesImage.changed() after calling AxesImage.set_data().
>
> That doesn't help :(. I'm not jet able to update the colorbar once the
> image has changed.
I've found a way to update the colorbar after the image has changed:
image = imshow(data)
colr_bar = colorbar()
...
image.set_data(new_data)
image.changed()
color_bar.set_clim(vmax=newdata.max())
draw()
The autoscale() colorbar method does not work to update a colorbar,
but with the above code I can acheive the same result.
Thanks again.
~ Antonio
|
|
From: Antonino I. <tri...@gm...> - 2007-04-01 09:40:16
|
Sorry for the late answer... On 3/29/07, Ken McIvor <mc...@ii...> wrote: > On Mar 28, 2007, at 6:03 PM, Antonino Ingargiola wrote: > > On 3/28/07, Ken McIvor <mc...@ii...> wrote: > >> You should probably do the acquisition asynchronously by running it > >> in a separate thread. > <snip> > > > > That's exactly what I'd like to do. The problem is that if I run > > gtk.main() (the gtk main GUI loop) in a separate thread the program > > stops until I do something on the GUI (for example passing the mouse > > on it). > > Does it do this if you run gtk.main() in the main thread (e.g. the > interpreter prompt) while doing something else in a background thread? Good idea. I will try it next time I'll do something with GUI and thread. > > My understanding so far is the following. When the function > > that execute gtk.main() is executed, python doesn't switch thread > > until either 100 bytecode instructions are executed or since an I/O > > (potentially) blocking operation in executed. > > I think you're more or less correct but are unaware of one important > factor. Here's my understanding of how multithreading works in > Python... > > Thread switching is controlled by something called the Global > Interpreter Lock, which is implemented in an abstract way on top of > an OS lock/mutex object. Only one Python thread runs at a time > because the Python interpreter requires a thread to hold the GIL > before it can execute bytecode instructions. The running thread > holds the GIL while is executes 100 instructions. During this time > other Python threads block waiting to acquire the GIL. After it has > executed its 100 instructions, the running thread releases the GIL > and then attempts to reacquire it. The OS ensures that things are > fair by preventing one thread from reacquiring the GIL over and over > again when other threads are also waiting for it. > > Python doesn't actually detect you do something that will block the > thread, like an I/O operation. Instead, the C code implementing an I/ > O operation like file.write() releases the GIL before performing the > operation. This allows a different thread to acquire it and run some > more bytecode instructions while the first thread performs its I/O > operation. Thanks for the explanation, it's clear now :). > > BTW, the timer idea is good and eliminates the need to call > > asynchronously the GUI thread to update the plot, which seems (the > > latter case) not very simple to do. > > Yep. It's impossible to inject arbitrary code into a Python thread; > the thread has to figure out what it's supposed to do by periodically > polling something or retrieving some kind of message by blocking on a > queue. Blocking on a queue isn't an option for the GUI thread. > > You might be able to trigger Gtk signals from a separate thread but > in my experience tricks like that can be, well, tricky. Good to know that this way is too tricky (at least). > > The last think I'm not yet able to do is to update the colorbar to > > autoscale with the new incoming data. The the script that follows > > tries to update the colorbar too but it does not work (on matplotlib > > 0.87 at least). > > I have no idea if this will help, but you might need to call > AxesImage.changed() after calling AxesImage.set_data(). That doesn't help :(. I'm not jet able to update the colorbar once the image has changed. I will open a new thread to discuss this problem. > Ken ~ Antonio |
|
From: Werner F. B. <wer...@fr...> - 2007-04-01 08:16:18
|
Hi Archana,
Sometimes py2exe can't figure out what needs to be included. In these
cases one creates entries in the packages section to force the inclusion
of one or multiple packages.
Archana Ganesan wrote:
> Hi all,
> ...
>
> options = {"py2exe": {"compressed": 1,
> "optimize": 2,
> "packages": ["encodings",
> ## "kinterbasdb",
> "pytz.zoneinfo.UTC",
> #" matplotlib.numerix",
>
You need to activate/un-comment the matplotlib.numerix line. Also note
that if you only include UTC and you use the timezone stuff in matplot
then a user NOT using UTC, i.e. another timezone will have a problem, it
is therefore better to just include all of pytz.
Werner
|