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
|
From: John H. <jdh...@ac...> - 2004-11-03 22:24:05
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Hello, why is figure derived from the Artist class? This Jochen> causes some special casing (figure is the only artist Jochen> where artist.figure does not point to the figure). Jochen> The the figure actually used as an Artist somewhere? What Jochen> would break if it would not be derived from Artist? In a couple of places - in the call to set_transform in Figure._set_artist_props and when FigureCanvas calls figure.draw(renderer). One could write a figure class that was not derived form Artist, but I don't really see the benefit of changing it. The Artist hierarchy are basically all the things that implement draw(renderer). Of course in a dynamically typed language one doesn't need to derive from Artist to implement draw(renderer), but it seems conceptually cleaner to do so in this case -- plus I have already done the Artist hierarchy in graphviz and included it in the users guide :-) It might also break some code which is relying on the Artist methods, eg fig.get_transform (for people who want to add lines, text, etc in fig coords). I doubt there are many such people, but it is a possibility. Jochen> I tried the patch I didn't test this - did it pass backend_driver? JDH |
From: Steve C. <ste...@ya...> - 2004-11-03 09:56:43
|
On Wed, 2004-11-03 at 12:48, mat...@li... wrote: > Message: 1 > Date: Tue, 2 Nov 2004 17:34:00 +0000 > From: Jochen Voss <vo...@se...> > To: mat...@li... > Subject: Re: [matplotlib-devel] questions about the PS backend > > > --ZPt4rx8FFjLCG7dd > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > Content-Transfer-Encoding: quoted-printable > > Hello, > > On Sun, Oct 31, 2004 at 10:33:27AM -0600, John Hunter wrote: > > >> 7) The template backend uses=3D20 > > >>=20 > > >> verbose.report('Error: %s'%msg) > > >>=20 > > >> Should this be 'verbose.report_error' instead? > >=20 > > Yes. > >=20 > > Steve> No verbose() at all! But I agree I think it should be > > Steve> 'verbose.report_error' > >=20 > > Yes, it should. All printing should either go to verbose.report or > > verbose.report_error, so that the user specified output handles are > > used. This was just an oversight in backend_bases.error_msg. > > Everyone should feel free to fix these as they find them. > Then the recent change to error_msg_template should be reverted, > shouldn't it? > > All the best, > Jochen I had the problem of error_msg() being called, executing verbose.report('Error: %s'%msg) and no message being reported. I checked how backend_agg handles errors and deleted verbose.report() and updated the doc string to be consistent with the way agg uses error_msg(). We now have 'verbose' and error_msg() which both report errors. The difference is that error_msg() has the side-effect of terminating your program, which is not necessarily what you expect from its name. I'd prefer to delete error_msg() completely, use 'verbose' for all errors and add a 'raise SystemExit()' after it if you need to terminate the program. I think it would make the code easier to understand. Steve |
From: Jochen V. <vo...@se...> - 2004-11-02 19:37:37
|
Hello, why is figure derived from the Artist class? This causes some special casing (figure is the only artist where artist.figure does not point to the figure). The the figure actually used as an Artist somewhere? What would break if it would not be derived from Artist? I tried the patch =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff -u -r1.5 figure.py --- figure.py 21 Oct 2004 19:57:50 -0000 1.5 +++ figure.py 2 Nov 2004 19:35:03 -0000 @@ -13,7 +13,7 @@ =20 =20 =20 -class Figure(Artist): +class Figure: =20 def __init__(self, figsize =3D None, # defaults to rc figure.figsize @@ -27,7 +27,7 @@ paper size is a w,h tuple in inches DPI is dots per inch=20 """ - Artist.__init__(self) + #Artist.__init__(self) #self.set_figure(self) =20 if figsize is None : figsize =3D rcParams['figure.figsize'] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D and everything still seems to work. Maybe a figure should be just something which uses artists to do its work instead of being one itself. What do you think? Jochen --=20 http://seehuhn.de/ |
From: Jochen V. <vo...@se...> - 2004-11-02 19:30:08
|
Hello John, On Tue, Nov 02, 2004 at 12:41:03PM -0600, John Hunter wrote: > I think its fine to make the change you suggested - > while you're in there, I suggest supporting writing to a file object > as well as a filename, as agg does now. All backends should support > this. Done! All the best, Jochen --=20 http://seehuhn.de/ |
From: Jochen V. <vo...@se...> - 2004-11-02 19:29:30
|
Hello John, On Tue, Nov 02, 2004 at 12:49:28PM -0600, John Hunter wrote: > I don't know why is was changed (or what it was before). I think it was just a misunderstanding about how error reporting is supposed to work. > def error_msg_template(msg, *args): > """ > Signal an error condition. > - in a GUI backend, popup a error dialog. > - in a non-GUI backend delete this function and use > 'from matplotlib.backend_bases import error_msg' > """ > verbose.report_error(msg) > raise SystemExist >=20 > All opposed, say Nay! I agree with the code, but I am not the sure about the comment. All the best, Jochen --=20 http://seehuhn.de/ |
From: John H. <jdh...@ac...> - 2004-11-02 18:58:37
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Then the recent change to error_msg_template should be Jochen> reverted, shouldn't it? I don't know why is was changed (or what it was before). I just checked in def error_msg_template(msg, *args): """ Signal an error condition. - in a GUI backend, popup a error dialog. - in a non-GUI backend delete this function and use 'from matplotlib.backend_bases import error_msg' """ verbose.report_error(msg) raise SystemExist All opposed, say Nay! JDH |
From: John H. <jdh...@ac...> - 2004-11-02 18:50:10
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Is there a reason for storing the PostScript data in a Jochen> string first? Otherwise I could just pass the real file Jochen> handle to RendererPS and it would write all the stuff Jochen> directly into the output file. The reason I did it (I think) was for efficiency, (wrongly) thinking it would be faster to write to StringIO than to a file object. Of course, file objects buffer their output, so this is not a real consideration. I think its fine to make the change you suggested - while you're in there, I suggest supporting writing to a file object as well as a filename, as agg does now. All backends should support this. JDH |
From: Jochen V. <vo...@se...> - 2004-11-02 18:26:16
|
Hello, the current way the PostScript backend works is as follows: 1) FigureCanvasPS.print_figure() uses StringIO to make a string look like a file. 2) The RendererPS class writes the PostScript file (except for the header= s) into this string, using file operations. This is done via call to Figure.draw() 3) FigureCanvasPS.print_figure() writes the resulting string into the output file. Is there a reason for storing the PostScript data in a string first? Otherwise I could just pass the real file handle to RendererPS and it would write all the stuff directly into the output file. All the best, Jochen --=20 http://seehuhn.de/ |
From: Jochen V. <vo...@se...> - 2004-11-02 17:34:14
|
Hello, On Sun, Oct 31, 2004 at 10:33:27AM -0600, John Hunter wrote: > >> 7) The template backend uses=3D20 > >>=20 > >> verbose.report('Error: %s'%msg) > >>=20 > >> Should this be 'verbose.report_error' instead? >=20 > Yes. >=20 > Steve> No verbose() at all! But I agree I think it should be > Steve> 'verbose.report_error' >=20 > Yes, it should. All printing should either go to verbose.report or > verbose.report_error, so that the user specified output handles are > used. This was just an oversight in backend_bases.error_msg. > Everyone should feel free to fix these as they find them. Then the recent change to error_msg_template should be reverted, shouldn't it? All the best, Jochen --=20 http://seehuhn.de/ |
From: Stefan K. <pon...@ya...> - 2004-11-01 21:59:48
|
in backend_agg lines 194 and 211, my application was passing unicodes which were generating a CXX type error ( expecting a string ). I put in a str( .. ) around the 's' arg in these 2 lines and everything worked. i.e. font.set_text( s, 0.0) changed to.. font.set_text( str( s ), 0.0) Just a note that unicodes cause a problem going through CXX when a string is expected. S __________________________________ Do you Yahoo!? Check out the new Yahoo! Front Page. www.yahoo.com |
From: Perry G. <pe...@st...> - 2004-11-01 21:39:29
|
On Oct 28, 2004, at 4:58 PM, Robert Kern wrote: > gary ruben wrote: >> True, I didn't pay much attention to licencing. In light of it >> though, here >> are a couple more links to a couple of gentlemen who may be worth >> grovelling to should the need arise. No specific licencing is >> mentioned. >> <http://mahi.ucsd.edu/parker/Software/> > > Actually, having seen this code and the gist code, I'd recommend > waiting for the gist-derived prototype. > > To muddy the waters a bit, the gist contouring algorithm looks to my > eye like Paul Bourke's CONREC algorithm, which may or may not be > patented. > Which gist contouring routine are you referring to? It appears to use two separate implementations for different contour functions. We are using the code in gcntr.c. If that is based on Bourke's routine, there shouldn't be a problem. None of the code that uses it makes any reference to a patent; there appear to be a number of other implementations, none of which appear to have been challenged. As far as patent rights go, aren't they only good for 17 years? It was published in July 1987 (though I suppose it may derive from when it was granted, not published). Then there is copyright, but that doesn't guard against reimplementation so long as code isn't copied (But I am not a lawy...). Perry |
From: John H. <jdh...@ac...> - 2004-11-01 20:27:16
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Hello John, Jochen> On Sun, Oct 31, 2004 at 10:54:04AM -0600, John Hunter wrote: >> One other PS quasi-bug you may want to be aware of is the way >> truetype fonts are embedded. The basic problem is that Paul >> couldn't find a way to access the individual glyph information >> so ended up having to embed the entire font. ... Jochen> Yes, I know about this. Let's see whether I can do Jochen> anything ... Jochen> It would also be nice if I could find a way to use the Jochen> printer's built-in fonts if the user wants to. This Jochen> should lead to really small PostScript files and really Jochen> high quality printed glyphs. This is effectively what we were doing before we started embedding PS fonts in matplotlib (0.61 I believe). So you can check out a CVS version prior to that and take a look. It might be nice to support this as an rc option, to use afm fonts. matplotlib has an afm parser and ships with the standard afm files. JDH |
From: Jochen V. <vo...@se...> - 2004-11-01 20:13:38
|
Hello John, On Sun, Oct 31, 2004 at 10:54:04AM -0600, John Hunter wrote: > One other PS quasi-bug you may want to be aware of is the way truetype > fonts are embedded. The basic problem is that Paul couldn't find a > way to access the individual glyph information so ended up having to > embed the entire font. ... Yes, I know about this. Let's see whether I can do anything ... It would also be nice if I could find a way to use the printer's built-in fonts if the user wants to. This should lead to really small PostScript files and really high quality printed glyphs. All the best, Jochen --=20 http://seehuhn.de/ |
From: John H. <jdh...@ac...> - 2004-10-31 17:05:34
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Hello, I found what I believe is bug in matplotlib. The Jochen> program Jochen> displays a graph, where the xlabel is shifted to much Jochen> down. Only the upper half of the xlabel is still visible, Jochen> the lower half is outside the visible area. Jochen> Is this a bug? Or do I need to somehow manually reserve Jochen> space for the display of the xlabel? See http://matplotlib.sf.net/faq.html#TEXTOVERLAP Basically the subplots are fixed sizes - they don't automatically adjust in response to the items placed on or around them. One could write a layout engine to do this, but there isn't one current. You have to adjust parameters as described in the link above. JDH |
From: John H. <jdh...@ac...> - 2004-10-31 17:02:56
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Hello, I did some clean-up of the matplotlib PostScript Jochen> backend. Main changes: Jochen> - The generated Postscript output is now completely DSC Jochen> conformant (I hope). Great - everyone should take this for a test drive with their favorite PS viewers before the next release. Jochen> - All PostScript definitions go into a a PostScript Jochen> dictionary mpldict instead of the global one. This will Jochen> hopefully prevent problems (name clashes) when including Jochen> matplotlib generated eps files into other PostScript files Jochen> - I moved 1.5kb of comments about drawing ellipses from Jochen> the generated PostScript into a Python source code Jochen> comment. I think it does not make sense to ship the Jochen> comment in each and every genereated picture. Makes sense to me... Jochen> Hopefully I did not cause any new problems. Comments Jochen> about the changes are most welcome. One other PS quasi-bug you may want to be aware of is the way truetype fonts are embedded. The basic problem is that Paul couldn't find a way to access the individual glyph information so ended up having to embed the entire font. For mathtext, with multiple fonts (which is typical) this makes for large ps files. It would be nice to just embed only the required glyphs. I believe this information is may be available in face->glyph->outline - see also FT_Outline in the freetype API abd agg22/font_freetype/agg_font_freetype.cpp which makes use of this glyph info in decompose_ft_outline. I haven't looked into this extensively, but I think it should be possible. This would help on mathtext for SVG, for which I believe we require the individual glyph information. JDH |
From: John H. <jdh...@ac...> - 2004-10-31 16:55:59
|
>>>>> "Jochen" == Jochen Voss <vo...@se...> writes: Jochen> Hello, currently I am having a closer look at the Jochen> PostScript backend. Some questions occurred to me: Jochen> 1) What is the meaning of 'backend_version'? When should Jochen> it be increased/changed? Eg, for gtk this would be the version of pygtk, for wx the version of wxpython. It is mainly used to provide us diagnositic information to help when users post problems on the mailing list. If they run with --debug-helpful, we get the version info. It is not the same as the matplotlib version, which is reported separately. For PS, it seems that it should be the PS level that is required (PS level I, level II). But it could also be 'not applicable'. If you can think of something that makes sense, use it. Jochen> 2) Is the following code the correct way to get the Jochen> matplotlib version for use in a backend file: Jochen> from matplotlib import __version__ version=__version__ Looks right to me; you could also do from matplotlib import __version__ as version Jochen> 3) The draw_lines method checks whether the argument Jochen> arrays are of the same size as required. The other Jochen> functions do not do any sanity checks on the arguments. Jochen> Can the renderer methods assume that they are called with Jochen> semantically correct arguments? Is it ok to fail with an Jochen> Python exception otherwise? Yes on both cases, me thinks. Jochen> 4) Can the PostScript code assume that each file contains Jochen> only one picture/page? Might this change in the future? I say yes. I can't imagine changing this, but perhaps someelse who is more imaginative than I could. Jochen> 5) Does matplotlib have the concept of a picture title Jochen> which could be written into the DSC "%%Title" comment? If Jochen> the answer is yes: how do I get this title? Well, there is a figure title and an axes title. It would be easy to add a renderer method called set_title which is called by figure.draw and axes.draw. The problem here is that although there *is* a figure title (see matplotlib.matlab.figtitle) the most common way to set titles is via matplotlib.matlab.title which sets the title of the current axes. Hence you could have multiple titles. One solution, that will work in 95% of the cases, is just to use the first call to set_title in the renderer and ignore subsequent calls. This will get the figure title if there is one, and the first axes title if there isn't. Jochen> Also I have some questions about the template backend in Jochen> backend_template.py: Jochen> 6) The template backend contains the line Jochen> from matplotlib.transforms import Bbox Jochen> Does this have any function or should it be removed? It can be removed. Jochen> 7) The template backend uses Jochen> verbose.report('Error: %s'%msg) Jochen> Should this be 'verbose.report_error' instead? Yes. Jochen> Sorry about having so many questions, Jochen -- Thanks! JDH |
From: John H. <jdh...@ac...> - 2004-10-31 16:48:39
|
>>>>> "Steve" == Steve Chaplin <ste...@ya...> writes: Steve> John, I think the doc string for points_to_pixels() in Steve> backend_bases.py and backend_template.py should be updated Steve> define its return type. Does points_to_pixels() return Steve> int, float, or float if the backend supports it (agg) else Steve> int (gtk)? I think this should be a float return type, to leave issues of rounding to the last minute when the backend renderer gets the coords for drawing. Eg, lines.py uses this information to draw line with lengths in points - you might imagine a situation where the backend round one way or the other depending on the two end points of the line. If the points were rounded first, this would not be possible. If you agree with this, go ahead and update the doc string. As I mentioned earlier, I'm looking into refactoring the backend drawing model so that the transformations happen in the backend, which would obviate some of these problems. JDH |
From: John H. <jdh...@ac...> - 2004-10-31 16:42:21
|
>>>>> "Steve" == Steve Chaplin <ste...@ya...> writes: Hi Steve, >> 7) The template backend uses=20 >> >> verbose.report('Error: %s'%msg) >> >> Should this be 'verbose.report_error' instead? Yes. Steve> No verbose() at all! But I agree I think it should be Steve> 'verbose.report_error' Yes, it should. All printing should either go to verbose.report or verbose.report_error, so that the user specified output handles are used. This was just an oversight in backend_bases.error_msg. Everyone should feel free to fix these as they find them. Of course, GUI backends are an exception, where the error messages go to the dialog box, as you noted. >> Also, there is a new PS backend now. I've been working on >> backend_cairo.py and today got it producing its own png and PS >> files. Great - there have been a number of people who've been interested in a cairo backend since the earliest days. When you get the thing so that you're happy with it, you might want to search for cairo on the mailing list and let these people know there is one. Thanks! JDH |
From: Jochen V. <vo...@se...> - 2004-10-31 15:59:23
|
Hello, On Sun, Oct 31, 2004 at 10:09:55PM +0800, Steve Chaplin wrote: > backend_bases has: > def error_msg(msg, *args, **kwargs): > """ > Alert an error condition with message > """ > print >>sys.stderr, msg > sys.exit() >=20 > No verbose() at all! But I agree I think it should be > 'verbose.report_error'=20 Yes, it seems that this makes sense in the non-interactive case. We are aborting the program, so the message should be visible in any case. > Also, there is a new PS backend now. I've been working on > backend_cairo.py and today got it producing its own png and PS files. Cool! All the best, Jochen --=20 http://seehuhn.de/ |
From: Steve C. <ste...@ya...> - 2004-10-31 14:08:11
|
> 7) The template backend uses=20 > > verbose.report('Error: %s'%msg) > > Should this be 'verbose.report_error' instead? I was looking at this too, earlier today, because it was giving me a problem - it was exiting without the error message being printed. I looked to see how backend_agg handles errors and deleted it because I don't think its even needed. With a GUI backend you can popup an error message window. With a non-GUI backend you can simply use "from matplotlib.backend_bases import error_msg" as backend_agg does. backend_bases has: def error_msg(msg, *args, **kwargs): """ Alert an error condition with message """ print >>sys.stderr, msg sys.exit() No verbose() at all! But I agree I think it should be 'verbose.report_error' Also, there is a new PS backend now. I've been working on backend_cairo.py and today got it producing its own png and PS files. Regards, Steve |
From: Jochen V. <vo...@se...> - 2004-10-30 20:10:38
|
Hello, I found what I believe is bug in matplotlib. The program from matplotlib.matlab import * from math import sin t=3Darange(0,10,0.1) x=3Dmap(lambda tt:sin(tt), t) figure(figsize=3D(5,3)) plot(t,x,"k-") xlabel("total time") ylabel("tatil tome") title("titol tame") show () displays a graph, where the xlabel is shifted to much down. Only the upper half of the xlabel is still visible, the lower half is outside the visible area. Is this a bug? Or do I need to somehow manually reserve space for the display of the xlabel? All the best, Jochen --=20 http://seehuhn.de/ |
From: Jochen V. <vo...@se...> - 2004-10-30 19:38:46
|
Hello, I fixed the problem with the not-quite-correctly text in the PS backend. The solution was to shift all the text up by the distance between the lower edge of the bounding box and the text base line. I added a new method to FT2Font, which calculates this distance. Comments about this are most welcome. All the best, Jochen --=20 http://seehuhn.de/ |
From: Jochen V. <vo...@se...> - 2004-10-30 14:11:22
|
Hello, I did some clean-up of the matplotlib PostScript backend. Main changes: - The generated Postscript output is now completely DSC conformant (I hope). - All PostScript definitions go into a a PostScript dictionary mpldict instead of the global one. This will hopefully prevent problems (name clashes) when including matplotlib generated eps files into other PostScript files - I moved 1.5kb of comments about drawing ellipses from the generated PostScript into a Python source code comment. I think it does not make sense to ship the comment in each and every genereated picture. Hopefully I did not cause any new problems. Comments about the changes are most welcome. All the best, Jochen --=20 http://seehuhn.de/ |
From: Jochen V. <vo...@se...> - 2004-10-30 12:22:47
|
Hello, currently I am having a closer look at the PostScript backend. Some questions occurred to me: 1) What is the meaning of 'backend_version'? When should it be increased/changed? 2) Is the following code the correct way to get the matplotlib version for use in a backend file: from matplotlib import __version__ version=3D__version__ 3) The draw_lines method checks whether the argument arrays are of the same size as required. The other functions do not do any sanity checks on the arguments. Can the renderer methods assume that they are called with semantically correct arguments? Is it ok to fail with an Python exception otherwise? 4) Can the PostScript code assume that each file contains only one picture/page? Might this change in the future? 5) Does matplotlib have the concept of a picture title which could be written into the DSC "%%Title" comment? If the answer is yes: how do I get this title? Also I have some questions about the template backend in backend_template.py: 6) The template backend contains the line from matplotlib.transforms import Bbox Does this have any function or should it be removed? 7) The template backend uses=20 verbose.report('Error: %s'%msg) Should this be 'verbose.report_error' instead? Sorry about having so many questions, Jochen --=20 http://seehuhn.de/ |
From: Steve C. <ste...@ya...> - 2004-10-30 12:19:29
|
John, I think the doc string for points_to_pixels() in backend_bases.py and backend_template.py should be updated define its return type. Does points_to_pixels() return int, float, or float if the backend supports it (agg) else int (gtk)? Regards Steve |