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
(13) |
2
(9) |
3
(4) |
4
|
5
(1) |
6
(4) |
7
(4) |
8
|
9
(1) |
10
(2) |
11
(1) |
12
(1) |
13
(3) |
14
(1) |
15
(5) |
16
(3) |
17
(18) |
18
(2) |
19
|
20
(1) |
21
(4) |
22
(9) |
23
(3) |
24
(2) |
25
|
26
|
27
|
28
|
29
(1) |
30
(1) |
|
|
John Hunter wrote: >>>>>>"paul" =3D=3D paul cristini <pau...@un...> writes: > > > paul> The pick method because of the need to click on edges did > paul> not fullfill my needs. So I wrote a new method Called > paul> PickBigLine that does not required a mouse click close to > paul> the edge but close to the line you want to pick. This is > paul> particularly useful after zooming when the edges are > paul> sometimes out of the axis limits. =20 > >Hi Paul, > >It is not clear to me what this method is for. It would help if you >posted an example where the current pick functionality failed and the >one you propose succeeds (perhaps you could define your function at >the top of the file for ease of use). > >I have a couple of questions/comments about your code... > > xt, yt =3D a.get_transform().numerix_x_y(xdata, ydata) > xt, yt =3D asarray(xt), asarray(yt)=20 > >There is no need to call asarray since numerix_x_y returns arrays. > > > =20 > xc, yc =3D xt[1]-xt[0], yt[1]-yt[0] > >What is the point of this? Why do you only look at the points xt[1], >xt[0], yt[1], yt[0]? What if someone needs to click on another point >of the line? > > if xc=3D=3D0.0 and yc =3D=3D 0.0: return 1000000. > D =3D xc*xc + yc*yc > D1 =3D -(xt[0]-xywin[0])*yc+(yt[0]-xywin[1])*xc = =20 > D2 =3D -(yt[0]-xywin[1])*yc-(xt[0]-xywin[0])*xc > >What do D1 and D2 represent? I'm having trouble understanding why, >for example, you need to do (xt[0]-xywin[0])*yc > > if D2/D>1.001 or D2/D<-0.001: return 1000000. > >I think the 1000000.0 sentinel value should be renamed to some useful >constant name so it will be self documenting. > > return abs(D1/D) > > > artists =3D self.lines > if not len(artists): return None > ds =3D [ (dist(a),a) for a in artists] > ds.sort() > return ds[0][1] > > > paul> I also needed to add a > paul> new property to Line2D called tag (similar to matlab) for > paul> sorting purposes. I wonder if you have thought of adding > paul> such a possibility to some objects for which it can be very > paul> useful. > >Does the "label" property help here. Could you give a use case? > >Thanks! > >JDH > Sorry for the late answer but I had problems in designing a simple exampl= e( I had the very bad idea to letter "l" tas a key to press). Here it is : from pylab import * def pick(event): if event.key=3D=3D'p' and event.inaxes is not None: ax=3Devent.inaxes a=3Dax.pick(event.x,event.y) a.set_color('g') a.set_linewidth(2.) draw() if event.key=3D=3D'm' and event.inaxes is not None: ax=3Devent.inaxes a=3Dax.pickBigLine(event.x,event.y) a.set_color('g') a.set_linewidth(2.) draw() #########################################################################= ### def PlotTwoLines(): # hold(True) plot([0.,0.],[-100.,100.]) plot([2.,2.],[-1.,1.]) connect('key_press_event',pick) xmin,xmax,ymin,ymax=3Daxis() axis([xmin-1.,xmax+1.,ymin*1.1,ymax*1.1]) show() if __name__=3D=3D'__main__': PlotTwoLines() Two way for picking a line the classical pick method by using the "p"key = and PickBigLine by using the "m" key. The code just draw two lines a big one and a small one. The classical pic= k method works prefectly if you do not zoom to see the small line. But if y= ou do a zoom to see more accurately the small line then it is impossible to pick the b= ig line unless you use PickBigLine. Basically, PickBigLine evaluates the orthogonal distance from the selecte= d point to the line by calculating the intersection between the line you want to = select and a line passing through the selected point which is orthogonal. Here is a modified version of PickBigLine taking into account your remark= s and working with Matplotlib 0.82 -------------------------------------------------------------------------= ------------------------- def pickBigLine(self, x, y, trans=3DNone): """ Return the Line artist under point that is closest to the x, y. = if trans is None, x, and y are in window coords, 0,0 =3D lower left. Othe= rwise, trans is a matplotlib transform that specifies the coordinate sys= tem of x, y. Calculates the orthogonal distance to the line Note this algorithm calculates distance to the vertices of the polygon, so if you want to pick a patch, click on the edge! """ if trans is not None: xywin =3D trans.xy_tup((x,y)) else: xywin =3D x,y def dist(a): Cste=3D1.e6 xdata =3D a.get_xdata(valid_only =3D True) ydata =3D a.get_ydata(valid_only =3D True) # A point is not a line if len(xdata) =3D=3D 1: return Cste xt, yt =3D a.get_transform().numerix_x_y(xdata, ydata) xc, yc =3D xt[1]-xt[0], yt[1]-yt[0] if (xc=3D=3D0.0 and yc =3D=3D 0.0): return Cste D =3D xc*xc + yc*yc D1 =3D -(xt[0]-xywin[0])*yc+(yt[0]-xywin[1])*xc D2 =3D -(yt[0]-xywin[1])*yc-(xt[0]-xywin[0])*xc if D2/D>1.00001 or D2/D<-0.00001: return Cste return abs(D1/sqrt(D)) artists =3D self.lines =20 if not len(artists): return None ds =3D [ (dist(a),a) for a in artists] ds.sort() return ds[0][1] -------------------------------------------------------------------------= ----------- My interests are in ray tracing in geophysics. I am generating a lot of l= ines (thousands of) and then I need by zooming to identify trajectories conne= cting a source and a receiver. For example when I am picking a line I need to kno= w to what beam it belongs and also to what ray it coresponds (two integers for instance). I don't know how to do it with the label property. It is an ax= es property not a line2D property. If you want I can give an example of the use of the tag property I add. Paul
>>>>> "Ted" == Ted Drain <ted...@jp...> writes: Ted> John, Is there anything special required to get the subplot Ted> configuration tool available from QtAgg? I'm in the process Ted> of fixing that sizing problem reported last week and the only Ted> way to fix it was to change how the toolbar layout works so Ted> I'm mucking around in the toolbar right now. Ted> I guess I'll sync and take a look at the Gtk backend and see Ted> what happens in there... Hi Ted, It shouldn't be hard. The subplot configuration toolbar is a pure matplotlib widget so all it requires id for your toolbar to embed it into a properly sized qt canvas. This means your toolbar needs to know how to make a canvas, so you need to subclass the toolbar gor qtagg. What I did for GTK was add a "_get_canvas(self, fig)" method to the toolbar. The base class binds the new subplots.png button to configure_subplots, which looks like this -- note the line marked with the arrow class NavigationToolbar2GTK(NavigationToolbar2, gtk.Toolbar): ...snip... def configure_subplots(self, button): toolfig = Figure(figsize=(6,3)) ====> canvas = self._get_canvas(toolfig) toolfig.subplots_adjust(top=0.9) tool = SubplotTool(self.canvas.figure, toolfig) w = int (toolfig.bbox.width()) h = int (toolfig.bbox.height()) window = gtk.Window() window.set_title("Subplot Configuration Tool") window.set_default_size(w, h) vbox = gtk.VBox() window.add(vbox) vbox.show() canvas.show() vbox.pack_start(canvas, True, True) window.show() def _get_canvas(self, fig): return FigureCanvasGTK(fig) Then in gtkagg, I subclass the toolbar with class NavigationToolbar2GTKAgg(NavigationToolbar2GTK): def _get_canvas(self, fig): return FigureCanvasGTKAgg(fig) You might want to try the same approach for qtagg. Of course there is no FigureCanvasQt, but this approach will make it easier if someone wants to add a different renderer to Qt, eg QtCairo. JDH
On Wed, 2005年06月15日 at 09:22 -0500, John Hunter wrote: > >>>>> "Steve" == Steve Chaplin <ste...@ya...> writes: > > Steve> Figure.get_width_height() returns width, height as floats, > Steve> but isn't width, height of a Figure always integers, and > Steve> wouldn't it make sense to return these as integers? > > Steve> This would enable changing the code: width, height = > Steve> figure.get_width_height() width, height = int(width), > Steve> int(height) > > Steve> to simply: width, height = figure.get_width_height() > > The width and height of a figure are width/height in inches * dpi, and > both dpi and the width/height vars can be floats. So no, these values > don't have to be integers. In the postscript backend, for example, it > returns the width and height of the figure in points. We could add a > convenience kwarg to the method, since in practice it is usually used > by GUI developers who want the dimensions in pixels > > w, h = fig.get_width_height(asinteger=True) > > If you think this is a good idea, feel free to add it. > > JDH My understanding is, the frontend does all its calculations in floating point and never uses fig.get_width_height() because its always dealing width width, height in inches and dpi. 'grep' shows that fig.get_width_height() is not used by the frontend, its only ever used by the backends so it does not really belong in Figure it belongs it FigureCanvas. The value of width/height in inches * dpi does not need to be integers, but what about the ACTUAL width, height values that the backends produce? The backends will either draw to the display with width, height in integer pixels, or create an output file png, ps, svg etc, which in most (all?) cases will have integer width, height. Does it make sense having an output file 1200.8 x 900.6? What use is the fractional point/pixel? I ran './simple_plot.py -dAgg' with "savefig('simple_plot.png', dpi=150.1)" to see if I would get the theoretical 1200.8 x 900.6 images. png and jpg gave 1200 x 900 for svg I used w,h in inches of 8.1, 6.1 (and the default 72 dpi) the svg file says the width, height is 583.2, 439.2, yet gthumb shows the image size as 583 x 439. So there is definitely a float-to-integer conversion/truncation for width, height taking place. I suggest moving Figure.get_width_height() to FigureCanvas.get_width_height() and returning integers. If a backend really can produce float width, height it can simply override get_width_height(). regards, Steve Send instant messages to your online friends http://au.messenger.yahoo.com