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
(1) |
2
(1) |
3
(3) |
4
(2) |
5
|
6
|
7
(8) |
8
|
9
|
10
(3) |
11
(2) |
12
(2) |
13
(2) |
14
(6) |
15
(1) |
16
|
17
|
18
(8) |
19
(1) |
20
(9) |
21
|
22
(6) |
23
(1) |
24
(13) |
25
(8) |
26
(5) |
27
(3) |
28
(7) |
29
(4) |
30
|
|
|
|
I'be been playing around with this for a while and can't seem to get it. I'm running qt4 with a twisted python reactor (the qtreactor I maintain for the twisted folks). I'm doing an animated scrolling plot... all works great but I want to rescale the plot as the ranges change. That works as well and I know the information is in the axes because if I change the size of the plot, they redraw correctly... but I can't figure out what call to make inside the loop to force the axes to redraw... This is probably really simple... but I've tried just about every call I can think of and it just won't recalc... any hints? -glenn -- Glenn H. Tarbox, PhD
Gregor, Thanks for working on this. > backend_qtagg.py seems to contain a proper (more or > less, see other postings of Ted Drain) implementation of double buffered > drawing that avoids unnecessary rerendering of the bitmap. It still feels a bit kludgy to me -- a paint event should simply copy the bitmap to the screen, any re-rendering should be triggered by other events -- either a re-size, or explicitly by figure.canvas.draw() or something. Anyway, given the current structure, this looks like the way to go. > self._need_rerender = True Where does this get set to True again? On a Figure.canvas.draw() call? > changed _onPaint(...) to following (note: removed evt.Skip() at end!) > def _onPaint(self, evt): > #repaint only damaged parts of window I don't know that this is needed, bitting the whole Window is blazingly fast anyway -- but if it works, why not? > dc = wx.PaintDC(self) > source = wx.MemoryDC(self.bitmap) > box = self.UpdateRegion.Box > dc.Blit(box.X, box.Y, box.Width, box.Height, > source, > box.X, box.Y) > source.SelectObject(wx.NullBitmap) #needed? no, it goes away at the end of the method, anyway. > By these change in onPaint a rerendering of the bitmap is done only if > needed (in fact, this is needed only once after the figure is shown > for the first time). Well, it's needed whenever the figure changes -- on each figure.canvas.draw() call, I guess. > I moved code from gui_repaint() into > _onPaint. Calls to gui_repaint() in other methods (e.g., draw) might now be > replaced by > > self.Refresh() > self.Update() #this is optional, leeds to an immediate repaint Maybe -- I've found (at least on OS-X) that using a ClientDC is still required sometimes to get instant response. This is key if you're doing anything like animation. > def draw(self, repaint=True): > """ > Render the figure using agg. > """ > DEBUG_MSG("draw()", 1, self) > FigureCanvasAgg.draw(self) > self.bitmap = _convert_agg_to_wx_bitmap(self.get_renderer(), None) > if repaint: > self.Refresh(eraseBackground = False) > self.Update() I think maybe these should be calls to gui_repaint, which will get you to a ClientDC instead of waiting for a paint event -- Update is not always instant. > self.Update() #needed? Same as above. > I had to add some calls to figure.canvas.draw in my mpl-embedded-in-wx > application, e.g., after changing a colormap range, to give a > immediate change on screen. Before due to the frequent rerendering I > didn't notice that these statements were missing. I agree -- I think I'm going to need to add a few of those too. The problem is that this is a change, and other folks' code is going to break too. > As Chris Barker noticed, Figure.draw() does not lead to a repainting > of the window on screen. This seems to be intended. Instead one should > use pylab.draw() or Figure.canvas.draw(). I think you're right -- I should have looked at the pylab.draw code to see what it did. Though I think Figure should have a method that does do an instant update...DrawNow?? > I thought about a more substantial rewrite of the Wx/WxAgg backend, > similar to the QtAgg backend, I think it does kind of need it. > Anyhow, the Wx backend seems to be in some > aspects outdated (uses old style wx methods, e.g. ToolBar.AddTool) and > is even not fully functional (image support missing). What are the > plans for the future? Well, I think most folks use wxAgg, rather than the straight wx back-end. As for other updating -- it's not a matter of plans so much as someone needing to step up and do it! > What about the politics of supporting older versions of wxWidgets? I wouldn't bother, but I'm a bleeding-edge kind of guy. It seems that we could at least make sure not to break anything by keeping the old code around for older versions, and go all 2.8 for new code, with one big 'ol version test at the top of the modules. Thanks for working on this, -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chr...@no...
Hi, In learning to make a nice plot for a small window on a web page, I had to go through a number of contortions to get the layout correct. Graph layout should be based on em and ex spacing rather than portion of the viewable area. The attached file computes the portions as best it can based on the font size (I don't know if em and ex are readily available). It still isn't right. In particular, the legend box width can't be controlled properly, or the distance between legend and one graph edge since there is one number for each of axespad and pad regardless of aspect ratio. I propose allowing all dimensions to carry units with them: point, pixel, font, axis, figure or data The x and y dims may have different units. Even for the same units, the x and y will be different because of aspect ratio. I would suggest allowing string values such as: '10pt', '14px', '1ch', '0.01ax', '0.01fig', '35d' or pairs: (10,'pt'), (14,'px'), ... The OOP trick of 10*pt, 14*px, etc. is cute, but the names need to be much longer for this to work. The transform= kw on some entries would no longer be necessary. I won't have time to code this for a long time, but I wanted to get it out there while it is fresh in my mind, and give people a chance to comment on it. A further note: small/medium/large aren't quite what I wanted for relative font sizes. It would be nice to be able to specify 0.9x/1x/1.1x instead. - Paul