From: Benedikt K. <li...@be...> - 2008-05-08 08:37:55
|
Hi All, I have a problem concerning the file size of my plots. Producing 3d graphs of my data leads to single PDF files of several MB size. Including these graphs in my paper gives a nice to print document, but it is way to big for easy electronic distribution as PDF. So I was thinking if there is a way to produce these high quality vector graphics for the print version of the paper but to somehow get some smaller sized graph files for the electronic version. Currently I am limiting the size by plotting only every x-th point. But obviously this is a stupid solution if you are lucky enough to have high resolution data in the first place. Alternatively I could use pipeGS to produce bitmaps of the complete graph, but I'd rather keep the axes and text as vectors and only have the actual data as bitmap. My idea is basically to produce the highly resolved 3d graph, then convert the plotted data into a bitmap while keeping axes and text in vector format and then write the whole stuff to a PDF. This should keep file sizes moderate even if the bitmap has printing quality of around 300 dpi. Are there any opinions on whether some thing like this is possible at all using PyX and if yes, how to do it? Or is there any other way to keep file size small for complexe plots? Thanks already, bene |
From: Benedikt K. <li...@be...> - 2008-05-14 08:30:15
|
Hi Alex, thanks for that tip. Unfortunately, it does not work for me. I tried the -dNOCACHE option the way you described and the resulting files were all bigger in size than the original ones by a factor of 3 to 6. Neither eps->eps->pdf, eps->pdf, nor pdf->pdf did reduce the file size. And another thing, that might be uncritical for 2d plots, is the display speed of the ghostscripted files. One can virtually watch every single line of the 3d plot being drawn (same in Acrobat Reader, ggv, and xpdf, so I suppose this is an issue of the file and not of the viewer). This is very annoying for an electronic paper that one might want to read on the screen. I did not check what the -dNOCACHE option is really doing to the files, but it is probably not doing what I am looking for. Thanks anyway. Benedikt Am Mittwoch, den 14.05.2008, 10:01 +0200 schrieb Axel Freyn: > Hi Benedikt, > > for me also file size is the big disadvantage of some pyx plots: I > was doing some plots like > http://pyx.sourceforge.net/gallery/graphs/mandel.html, which really > became enormous files of a few hundred MB; There, it is possible to > solve the problem by directly creating bitmaps in pyx instead of using > graph.graphxy(), but for 3d images this wan't be a solution, I think. > > After some try and error, I also found another solution: You can > postprocess the files with ghostscript to reduce the filesize - > keeping fonts as vector fonts: for me, this works with the option - > dNOCACHE, even if I don't know why (man gs states: > -dNOCACHE > Disables character caching. Useful only for debugging. > ). > > gs -q -dNOCACHE -dBATCH -dNOPAUSE -sDEVICE=epswrite - > sOutputFile=out.eps in.eps > > BUT: the strange thing is: if you do this, the BoundingBox is not > calculated correctly: characters are ignored in determining the > BoundingBox... So, after the conversion, you need another > gs -sDEVICE=bbox out.eps > to determine the BoundingBox, which you then can include into the > output-file (exchanging the 2 and 3 line) > > HTH, > > Axel > > > On Thu, May 8, 2008 at 10:35 AM, Benedikt Koenig <li...@be...> > wrote: > Hi All, > > I have a problem concerning the file size of my plots. > Producing 3d > graphs of my data leads to single PDF files of several MB > size. > Including these graphs in my paper gives a nice to print > document, but > it is way to big for easy electronic distribution as PDF. So I > was > thinking if there is a way to produce these high quality > vector graphics > for the print version of the paper but to somehow get some > smaller sized > graph files for the electronic version. > > Currently I am limiting the size by plotting only every x-th > point. But > obviously this is a stupid solution if you are lucky enough to > have high > resolution data in the first place. Alternatively I could use > pipeGS to > produce bitmaps of the complete graph, but I'd rather keep the > axes and > text as vectors and only have the actual data as bitmap. > > My idea is basically to produce the highly resolved 3d graph, > then > convert the plotted data into a bitmap while keeping axes and > text in > vector format and then write the whole stuff to a PDF. This > should keep > file sizes moderate even if the bitmap has printing quality of > around > 300 dpi. > > Are there any opinions on whether some thing like this is > possible at > all using PyX and if yes, how to do it? Or is there any other > way to > keep file size small for complexe plots? > > Thanks already, > bene > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) > Conference > Don't miss this year's exciting event. There's still time to > save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p? > http://java.sun.com/javaone > _______________________________________________ > PyX-user mailing list > PyX...@li... > https://lists.sourceforge.net/lists/listinfo/pyx-user > |
From: André W. <wo...@us...> - 2008-05-15 08:00:52
|
Hi Benedikt, I've used bitmap converted figures before as well. In recent PyX versions you can quite easily create such bitmaps by the pipeGS method of a canvas. Note that jpg and png files created this way can be used in pdfLaTeX directly. HTH, André Am 08.05.2008 um 10:35 schrieb Benedikt Koenig: > Hi All, > > I have a problem concerning the file size of my plots. Producing 3d > graphs of my data leads to single PDF files of several MB size. > Including these graphs in my paper gives a nice to print document, but > it is way to big for easy electronic distribution as PDF. So I was > thinking if there is a way to produce these high quality vector > graphics > for the print version of the paper but to somehow get some smaller > sized > graph files for the electronic version. > > Currently I am limiting the size by plotting only every x-th point. > But > obviously this is a stupid solution if you are lucky enough to have > high > resolution data in the first place. Alternatively I could use pipeGS > to > produce bitmaps of the complete graph, but I'd rather keep the axes > and > text as vectors and only have the actual data as bitmap. > > My idea is basically to produce the highly resolved 3d graph, then > convert the plotted data into a bitmap while keeping axes and text in > vector format and then write the whole stuff to a PDF. This should > keep > file sizes moderate even if the bitmap has printing quality of around > 300 dpi. > > Are there any opinions on whether some thing like this is possible at > all using PyX and if yes, how to do it? Or is there any other way to > keep file size small for complexe plots? > > Thanks already, > bene > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > PyX-user mailing list > PyX...@li... > https://lists.sourceforge.net/lists/listinfo/pyx-user > -- by _ _ _ Dr. André Wobst, Amselweg 22, 85716 Unterschleißheim / \ \ / ) wo...@us..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript and PDF figures (_/ \_)_/\_/ with Python & TeX: visit http://pyx.sourceforge.net/ |
From: Joerg L. <jo...@us...> - 2008-05-15 08:50:32
|
Hi André, On 15.05.08, André Wobst wrote: > Hi Benedikt, > > I've used bitmap converted figures before as well. In recent PyX > versions you can quite easily create such bitmaps by the pipeGS method > of a canvas. Note that jpg and png files created this way can be used > in pdfLaTeX directly. If I understood Benedikt correctly, he wants to convert only the 3d plot/surface in a bitmap, thereby keeping the original outline fonts. In my opinion that's a quite common use case for 3d plots. Especially since some printers are not able to print the shaded mesh produced by PyX. For 2d density plots, on the other hand, it's preferable to directly generate the bitmap as in http://pyx.sourceforge.net/gallery/misc/julia.html as opposed to a rasterization of rectangles like in http://pyx.sourceforge.net/gallery/misc/julia.html Cheers, Jörg |
From: Benedikt K. <li...@be...> - 2008-05-16 06:53:00
|
Hi André, like Jörg already pointed out I am indeed looking for a way to convert only the 3d surface to bitmap and keep the scalable fonts and axes. I think such a mix of bitmap and vector parts should be possible in PDF. As I mentioned, I am aware of the pipeGS method but it's not exactly what I mean. Thanks anyway, benedikt Am Donnerstag, den 15.05.2008, 10:00 +0200 schrieb André Wobst: > Hi Benedikt, > > I've used bitmap converted figures before as well. In recent PyX > versions you can quite easily create such bitmaps by the pipeGS method > of a canvas. Note that jpg and png files created this way can be used > in pdfLaTeX directly. > > HTH, > > > André > > > Am 08.05.2008 um 10:35 schrieb Benedikt Koenig: > > > Hi All, > > > > I have a problem concerning the file size of my plots. Producing 3d > > graphs of my data leads to single PDF files of several MB size. > > Including these graphs in my paper gives a nice to print document, but > > it is way to big for easy electronic distribution as PDF. So I was > > thinking if there is a way to produce these high quality vector > > graphics > > for the print version of the paper but to somehow get some smaller > > sized > > graph files for the electronic version. > > > > Currently I am limiting the size by plotting only every x-th point. > > But > > obviously this is a stupid solution if you are lucky enough to have > > high > > resolution data in the first place. Alternatively I could use pipeGS > > to > > produce bitmaps of the complete graph, but I'd rather keep the axes > > and > > text as vectors and only have the actual data as bitmap. > > > > My idea is basically to produce the highly resolved 3d graph, then > > convert the plotted data into a bitmap while keeping axes and text in > > vector format and then write the whole stuff to a PDF. This should > > keep > > file sizes moderate even if the bitmap has printing quality of around > > 300 dpi. > > > > Are there any opinions on whether some thing like this is possible at > > all using PyX and if yes, how to do it? Or is there any other way to > > keep file size small for complexe plots? > > > > Thanks already, > > bene > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > Don't miss this year's exciting event. There's still time to save > > $100. > > Use priority code J8TL2D2. > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > _______________________________________________ > > PyX-user mailing list > > PyX...@li... > > https://lists.sourceforge.net/lists/listinfo/pyx-user > > > |
From: Axel F. <fre...@us...> - 2008-05-16 08:12:28
|
Hi all, may be one possibility would be to write a subroutine which separates text and images, and then convert the image-part using pipeGS, and add the text-part on top of it? I'm thinking of a code like text_items=[] graph_items=[] for item in canvas.items: if item.__class__.__name__ == "textbox": text_items.append(item) else: if item.__class__.__name__ == "graphxy": item.dolayout() # loop over all sub-elements of this graphxy and remove all texts ... else: graph_items.append(item) graph_canvas = canvas.canvas() graph_canvas.items = graph_items text_canvas = canvas.canvas() text_canvas = text_items graph_canvas.insert(text_canvas) Well, there mightl be some problems to code, as you have to loop recursively over all elements (if you include a canvas into another canvas), and you have to think about the internals of e.g. graphxy (I don't know how to remove there all text - may be changing recursively all texter's of the objects? And how to calculate this text and add it to the other list?), or what to do with transformations,... What do you think about it? May be it could be nice to have such a subroutine integrated in regular PyX - especially for 3D-Plots, or am I missing something? Axel On Fri, May 16, 2008 at 8:50 AM, Benedikt Koenig <li...@be...> wrote: > Hi André, > > like Jörg already pointed out I am indeed looking for a way to convert > only the 3d surface to bitmap and keep the scalable fonts and axes. I > think such a mix of bitmap and vector parts should be possible in PDF. > As I mentioned, I am aware of the pipeGS method but it's not exactly > what I mean. > > Thanks anyway, > benedikt > > Am Donnerstag, den 15.05.2008, 10:00 +0200 schrieb André Wobst: > > Hi Benedikt, > > > > I've used bitmap converted figures before as well. In recent PyX > > versions you can quite easily create such bitmaps by the pipeGS method > > of a canvas. Note that jpg and png files created this way can be used > > in pdfLaTeX directly. > > > > HTH, > > > > > > André > > > > > > Am 08.05.2008 um 10:35 schrieb Benedikt Koenig: > > > > > Hi All, > > > > > > I have a problem concerning the file size of my plots. Producing 3d > > > graphs of my data leads to single PDF files of several MB size. > > > Including these graphs in my paper gives a nice to print document, but > > > it is way to big for easy electronic distribution as PDF. So I was > > > thinking if there is a way to produce these high quality vector > > > graphics > > > for the print version of the paper but to somehow get some smaller > > > sized > > > graph files for the electronic version. > > > > > > Currently I am limiting the size by plotting only every x-th point. > > > But > > > obviously this is a stupid solution if you are lucky enough to have > > > high > > > resolution data in the first place. Alternatively I could use pipeGS > > > to > > > produce bitmaps of the complete graph, but I'd rather keep the axes > > > and > > > text as vectors and only have the actual data as bitmap. > > > > > > My idea is basically to produce the highly resolved 3d graph, then > > > convert the plotted data into a bitmap while keeping axes and text in > > > vector format and then write the whole stuff to a PDF. This should > > > keep > > > file sizes moderate even if the bitmap has printing quality of around > > > 300 dpi. > > > > > > Are there any opinions on whether some thing like this is possible at > > > all using PyX and if yes, how to do it? Or is there any other way to > > > keep file size small for complexe plots? > > > > > > Thanks already, > > > bene > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > Don't miss this year's exciting event. There's still time to save > > > $100. > > > Use priority code J8TL2D2. > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > _______________________________________________ > > > PyX-user mailing list > > > PyX...@li... > > > https://lists.sourceforge.net/lists/listinfo/pyx-user > > > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > PyX-user mailing list > PyX...@li... > https://lists.sourceforge.net/lists/listinfo/pyx-user > |
From: André W. <wo...@us...> - 2008-05-19 07:23:13
|
Hi, first of all I'm sorry for not reading the original posting carefully (asking for a bitmap replacement for the mash only). Could have saved me from writing a very stupid posting. Am 16.05.2008 um 10:12 schrieb Axel Freyn: > What do you think about it? May be it could be nice to have such a > subroutine integrated in regular PyX - especially for 3D-Plots, or > am I missing something? The idea is really cool. Unfortunately we need transparency support for bitmaps for proper occlurency. However, yes, transparency is now available in svn! As we now have that, the right thing (tm) to do is to add a writer option mashasbitmap, as I did as well. By that it all comes down to setting the meshasbitmap flag to True ... and everything works magically. The only problem we do have is that I need bitmap data from ghostscript including an alpha channel. This is available by the pngalpha device. No problem so far, but this means I need to use the PIL to read the ghostscript output ... so the mashasbitmap replacement code imports the PIL for reading the transparent png. André -- by _ _ _ Dr. André Wobst, Amselweg 22, 85716 Unterschleißheim / \ \ / ) wo...@us..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript and PDF figures (_/ \_)_/\_/ with Python & TeX: visit http://pyx.sourceforge.net/ |
From: Axel F. <fre...@us...> - 2008-05-18 11:42:54
Attachments:
jpeg.patch.gz
|
Hello, I tried to find a solution now - and I have one: In fact it's really easy: just plot two graphs. For the first one, the text-color and the color of the axes is set to white. This graph is then converted to a jpeg by pipeGS. The second graph gets the axes-sizes (min and max values for each axes, total size of the Graph) from the first graph. Nothing is plotted in this graph, just the jpg-File from the first graph is included. With that, the axes and the text are plotted as vectors, and the surface is plotted as a jpeg. The same should also work for all types of 2d-graphs. For the example "surface.py", the following code works: from pyx import * col = color.gray.white whitetext=text.texrunner() whitetext.set(mode="latex") whitetext.preamble(r"\usepackage{color}") whitetext.preamble(r"\definecolor{COL}{gray}{1}") axis_texter = graph.axis.texter.decimal(prefix=r"\textcolor{COL}{",suffix=r"}") paint=graph.axis.painter.regular( texrunner = whitetext, basepathattrs = [color.gray.white], tickattrs = [color.gray.white] ) g1 = graph.graphxyz(size=4, x2=None, y2=None, x = graph.axis.linear(painter=paint,texter = axis_texter), y = graph.axis.linear(painter=paint,texter = axis_texter), z = graph.axis.linear(painter=paint,texter = axis_texter), ) g1.plot(graph.data.file("surface.dat", x=1, y=2, z=3), [graph.style.surface()]) g1.pipeGS("surface_tmp.jpg") c = canvas.canvas() g2 = graph.graphxyz(size=4, x2=None, y2=None, x = graph.axis.linear( min = g1.axes["x"].data.min, max = g1.axes["x"].data.max), y = graph.axis.linear( min = g1.axes["y"].data.min, max = g1.axes["y"].data.max), z = graph.axis.linear( min = g1.axes["z"].data.min, max = g1.axes["z"].data.max), ) g2.insert(bitmap.bitmap(g1.bbox().left(), g1.bbox().bottom(), bitmap.jpegimage("surface_tmp.jpg"), height=g1.bbox().height(), compressmode=None)) g2.writeEPSfile("surface") g2.writePDFfile("surface") HTH, Axel On Fri, May 16, 2008 at 10:12:31AM +0200, Axel Freyn wrote: > Hi all, > > may be one possibility would be to write a subroutine which separates text > and images, and then convert the image-part using pipeGS, and add the > text-part on top of it? > I'm thinking of a code like > text_items=[] > graph_items=[] > for item in canvas.items: > if item.__class__.__name__ == "textbox": > text_items.append(item) > else: > if item.__class__.__name__ == "graphxy": > item.dolayout() > # loop over all sub-elements of this graphxy and remove all texts > ... > else: > graph_items.append(item) > graph_canvas = canvas.canvas() > graph_canvas.items = graph_items > text_canvas = canvas.canvas() > text_canvas = text_items > > graph_canvas.insert(text_canvas) > > Well, there mightl be some problems to code, as you have to loop recursively > over all elements (if you include a canvas into another canvas), and you > have to think about the internals of e.g. graphxy (I don't know how to > remove there all text - may be changing recursively all texter's of the > objects? And how to calculate this text and add it to the other list?), or > what to do with transformations,... > > What do you think about it? May be it could be nice to have such a > subroutine integrated in regular PyX - especially for 3D-Plots, or am I > missing something? > > Axel > > On Fri, May 16, 2008 at 8:50 AM, Benedikt Koenig <li...@be...> wrote: > > > Hi André, > > > > like Jörg already pointed out I am indeed looking for a way to convert > > only the 3d surface to bitmap and keep the scalable fonts and axes. I > > think such a mix of bitmap and vector parts should be possible in PDF. > > As I mentioned, I am aware of the pipeGS method but it's not exactly > > what I mean. > > > > Thanks anyway, > > benedikt > > > > Am Donnerstag, den 15.05.2008, 10:00 +0200 schrieb André Wobst: > > > Hi Benedikt, > > > > > > I've used bitmap converted figures before as well. In recent PyX > > > versions you can quite easily create such bitmaps by the pipeGS method > > > of a canvas. Note that jpg and png files created this way can be used > > > in pdfLaTeX directly. > > > > > > HTH, > > > > > > > > > André > > > > > > > > > Am 08.05.2008 um 10:35 schrieb Benedikt Koenig: > > > > > > > Hi All, > > > > > > > > I have a problem concerning the file size of my plots. Producing 3d > > > > graphs of my data leads to single PDF files of several MB size. > > > > Including these graphs in my paper gives a nice to print document, but > > > > it is way to big for easy electronic distribution as PDF. So I was > > > > thinking if there is a way to produce these high quality vector > > > > graphics > > > > for the print version of the paper but to somehow get some smaller > > > > sized > > > > graph files for the electronic version. > > > > > > > > Currently I am limiting the size by plotting only every x-th point. > > > > But > > > > obviously this is a stupid solution if you are lucky enough to have > > > > high > > > > resolution data in the first place. Alternatively I could use pipeGS > > > > to > > > > produce bitmaps of the complete graph, but I'd rather keep the axes > > > > and > > > > text as vectors and only have the actual data as bitmap. > > > > > > > > My idea is basically to produce the highly resolved 3d graph, then > > > > convert the plotted data into a bitmap while keeping axes and text in > > > > vector format and then write the whole stuff to a PDF. This should > > > > keep > > > > file sizes moderate even if the bitmap has printing quality of around > > > > 300 dpi. > > > > > > > > Are there any opinions on whether some thing like this is possible at > > > > all using PyX and if yes, how to do it? Or is there any other way to > > > > keep file size small for complexe plots? > > > > > > > > Thanks already, > > > > bene > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > > Don't miss this year's exciting event. There's still time to save > > > > $100. > > > > Use priority code J8TL2D2. > > > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > > _______________________________________________ > > > > PyX-user mailing list > > > > PyX...@li... > > > > https://lists.sourceforge.net/lists/listinfo/pyx-user > > > > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Microsoft > > Defy all challenges. Microsoft(R) Visual Studio 2008. > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > _______________________________________________ > > PyX-user mailing list > > PyX...@li... > > https://lists.sourceforge.net/lists/listinfo/pyx-user > > |
From: Benedikt K. <li...@be...> - 2008-05-19 08:58:06
|
Axel, thank you! This is the best approach I tried so far and et works like a charm. After you last post I gave your proposition some thought but obviously I was not aware of the benefits of the bbox()-methods. Without them, correct placing of the bitmap is a real pain. With them, it's so easy! Thank you again! regards, benedikt Am Sonntag, den 18.05.2008, 13:42 +0200 schrieb Axel Freyn: > Hello, > > I tried to find a solution now - and I have one: > In fact it's really easy: just plot two graphs. For the first one, the > text-color and the color of the axes is set to white. This graph is then > converted to a jpeg by pipeGS. > The second graph gets the axes-sizes (min and max values for each axes, total > size of the Graph) from the first graph. Nothing is plotted in this graph, just the jpg-File from the first graph is included. > With that, the axes and the text are plotted as vectors, and the surface is > plotted as a jpeg. The same should also work for all types of 2d-graphs. > For the example "surface.py", the following code works: > > from pyx import * > > col = color.gray.white > > whitetext=text.texrunner() > whitetext.set(mode="latex") > whitetext.preamble(r"\usepackage{color}") > whitetext.preamble(r"\definecolor{COL}{gray}{1}") > axis_texter = graph.axis.texter.decimal(prefix=r"\textcolor{COL}{",suffix=r"}") > paint=graph.axis.painter.regular( > texrunner = whitetext, > basepathattrs = [color.gray.white], > tickattrs = [color.gray.white] > ) > g1 = graph.graphxyz(size=4, x2=None, y2=None, > x = graph.axis.linear(painter=paint,texter = axis_texter), > y = graph.axis.linear(painter=paint,texter = axis_texter), > z = graph.axis.linear(painter=paint,texter = axis_texter), > ) > g1.plot(graph.data.file("surface.dat", x=1, y=2, z=3), [graph.style.surface()]) > g1.pipeGS("surface_tmp.jpg") > c = canvas.canvas() > g2 = graph.graphxyz(size=4, x2=None, y2=None, > x = graph.axis.linear( > min = g1.axes["x"].data.min, max = g1.axes["x"].data.max), > y = graph.axis.linear( > min = g1.axes["y"].data.min, max = g1.axes["y"].data.max), > z = graph.axis.linear( > min = g1.axes["z"].data.min, max = g1.axes["z"].data.max), > ) > g2.insert(bitmap.bitmap(g1.bbox().left(), g1.bbox().bottom(), > bitmap.jpegimage("surface_tmp.jpg"), > height=g1.bbox().height(), compressmode=None)) > g2.writeEPSfile("surface") > g2.writePDFfile("surface") > > HTH, > Axel > > On Fri, May 16, 2008 at 10:12:31AM +0200, Axel Freyn wrote: > > Hi all, > > > > may be one possibility would be to write a subroutine which separates text > > and images, and then convert the image-part using pipeGS, and add the > > text-part on top of it? > > I'm thinking of a code like > > text_items=[] > > graph_items=[] > > for item in canvas.items: > > if item.__class__.__name__ == "textbox": > > text_items.append(item) > > else: > > if item.__class__.__name__ == "graphxy": > > item.dolayout() > > # loop over all sub-elements of this graphxy and remove all texts > > ... > > else: > > graph_items.append(item) > > graph_canvas = canvas.canvas() > > graph_canvas.items = graph_items > > text_canvas = canvas.canvas() > > text_canvas = text_items > > > > graph_canvas.insert(text_canvas) > > > > Well, there mightl be some problems to code, as you have to loop recursively > > over all elements (if you include a canvas into another canvas), and you > > have to think about the internals of e.g. graphxy (I don't know how to > > remove there all text - may be changing recursively all texter's of the > > objects? And how to calculate this text and add it to the other list?), or > > what to do with transformations,... > > > > What do you think about it? May be it could be nice to have such a > > subroutine integrated in regular PyX - especially for 3D-Plots, or am I > > missing something? > > > > Axel > > > > On Fri, May 16, 2008 at 8:50 AM, Benedikt Koenig <li...@be...> wrote: > > > > > Hi André, > > > > > > like Jörg already pointed out I am indeed looking for a way to convert > > > only the 3d surface to bitmap and keep the scalable fonts and axes. I > > > think such a mix of bitmap and vector parts should be possible in PDF. > > > As I mentioned, I am aware of the pipeGS method but it's not exactly > > > what I mean. > > > > > > Thanks anyway, > > > benedikt > > > > > > Am Donnerstag, den 15.05.2008, 10:00 +0200 schrieb André Wobst: > > > > Hi Benedikt, > > > > > > > > I've used bitmap converted figures before as well. In recent PyX > > > > versions you can quite easily create such bitmaps by the pipeGS method > > > > of a canvas. Note that jpg and png files created this way can be used > > > > in pdfLaTeX directly. > > > > > > > > HTH, > > > > > > > > > > > > André > > > > > > > > > > > > Am 08.05.2008 um 10:35 schrieb Benedikt Koenig: > > > > > > > > > Hi All, > > > > > > > > > > I have a problem concerning the file size of my plots. Producing 3d > > > > > graphs of my data leads to single PDF files of several MB size. > > > > > Including these graphs in my paper gives a nice to print document, but > > > > > it is way to big for easy electronic distribution as PDF. So I was > > > > > thinking if there is a way to produce these high quality vector > > > > > graphics > > > > > for the print version of the paper but to somehow get some smaller > > > > > sized > > > > > graph files for the electronic version. > > > > > > > > > > Currently I am limiting the size by plotting only every x-th point. > > > > > But > > > > > obviously this is a stupid solution if you are lucky enough to have > > > > > high > > > > > resolution data in the first place. Alternatively I could use pipeGS > > > > > to > > > > > produce bitmaps of the complete graph, but I'd rather keep the axes > > > > > and > > > > > text as vectors and only have the actual data as bitmap. > > > > > > > > > > My idea is basically to produce the highly resolved 3d graph, then > > > > > convert the plotted data into a bitmap while keeping axes and text in > > > > > vector format and then write the whole stuff to a PDF. This should > > > > > keep > > > > > file sizes moderate even if the bitmap has printing quality of around > > > > > 300 dpi. > > > > > > > > > > Are there any opinions on whether some thing like this is possible at > > > > > all using PyX and if yes, how to do it? Or is there any other way to > > > > > keep file size small for complexe plots? > > > > > > > > > > Thanks already, > > > > > bene > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > > > Don't miss this year's exciting event. There's still time to save > > > > > $100. > > > > > Use priority code J8TL2D2. > > > > > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > > > _______________________________________________ > > > > > PyX-user mailing list > > > > > PyX...@li... > > > > > https://lists.sourceforge.net/lists/listinfo/pyx-user > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > This SF.net email is sponsored by: Microsoft > > > Defy all challenges. Microsoft(R) Visual Studio 2008. > > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > > _______________________________________________ > > > PyX-user mailing list > > > PyX...@li... > > > https://lists.sourceforge.net/lists/listinfo/pyx-user > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ PyX-user mailing list PyX...@li... https://lists.sourceforge.net/lists/listinfo/pyx-user |