Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2020-11

Graphing library

8 messages · 6 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Darius Blaszyk

Hi,

I am looking for a simple to use non-visual graphing library to produce x-y plots in a raster file format (similar to how pyplot works). Rather than developing something from scratch or writing a wrapper to GNU plot (additional dependency), I was hoping something like this already would exist that I could build upon.

Thank you for any tips!

Rgds, Darius

leledumbo
to Darius Blaszyk
I am looking for a simple to use non-visual graphing library to produce x-y

plots in a raster file format (similar to how pyplot works). Rather than developing something from scratch or writing a wrapper to GNU plot (additional dependency), I was hoping something like this already would exist that I could build upon.

TAChart works with NoGUI LCL interface:
https://wiki.freepascal.org/TAChart_Demos#nogui

Bernd Oppolzer
to Darius Blaszyk: I am looking for a simple to use non-visual graphing library to produce x-y plots in a …

Hi,

I don't know if this can help you, but in the 1980s I worked with a library called GKS (graphic kernel system)
which I used to build such graphics like the following example: http://bernd-oppolzer.de/fdynsb.pdf

This programs that did this were written in Pascal at that time.

It still works today for me (the customer still uses this software), although is it C today, and GKS is not available any more. What I did: the original GKS calls are written to files (some sort of GKS metafile, but not the
original 1980s format), and then this file format is read by a C program GOUTHPGL,
which translates this (proprietary) format to HPGL. The HPGL files are either sent to
HP plotters or translated to PDF using public domain software; see the file above.
(GOUTHGPL was a Pascal program in the 1990s, too).

IMO, you could easily write the "GKS metafile format" with Pascal;
in fact, it is simply is a sort of logfile of the GKS calls.

Here is an old paper about the GKS system:
http://nsucgcourse.github.io/lectures/Lecture01/Materials/Graphical%20Kernel%20System.pdf

The translator GOUTHGPL supports only a small subset of GKS; see again the example picture above.

If you are interested for more details, you could contact me offline.

Kind regards

Bernd

Darius Blaszyk wrote 15 lines
Hi, I am looking for a simple to use non-visual graphing library to produce x-y plots in a  raster file format (similar to how pyplot works). Rather than developing something from scratch or writing a wrapper to GNU plot (additional dependency), I was hoping something like this already would exist that I could build upon. Thank you for any tips! Rgds, Darius _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Markus Greim
to Bernd Oppolzer

Hello Bernd,

there is a bachelor thesis from Jörg Winkler, 2013 in the net (in German):

"OpenGL-basierter logischer Gerätetreiber für ein Grafisches Kernsystem" Entwicklung eines logischen GKS Gerätetreibers
auf der Basis von OpenGL

https://docplayer.org/20014258-Entwicklung-eines-logischen-gks-geraetetreibers-auf-der-basis-von-opengl.html

It includes the source code (in C) . Seems to be a GKS to OpenGL software.

AFAIK the author is on GitHub, so may be you can ask him for some details or the source files: https://github.com/joergi-w

Kind Regards

Markus

Earlier message 86 lines
--- original message --- On November 15, 2020, 11:25 PM GMT+1 wrote: Hi, I don't know if this can help you, but in the 1980s I worked with a library called GKS (graphic kernel system) which I used to build such graphics like the following example: http://bernd-oppolzer.de/fdynsb.pdf This programs that did this were written in Pascal at that time. It still works today for me (the customer still uses this software), although is it C today, and GKS is not available any more. What I did: the original GKS calls are written to files (some sort of GKS metafile, but not the original 1980s format), and then this file format is read by a C program GOUTHPGL, which translates this (proprietary) format to HPGL. The HPGL files are either sent to HP plotters or translated to PDF using public domain software; see the file above. (GOUTHGPL was a Pascal program in the 1990s, too). IMO, you could easily write the "GKS metafile format" with Pascal; in fact, it is simply is a sort of logfile of the GKS calls. Here is an old paper about the GKS system: http://nsucgcourse.github.io/lectures/Lecture01/Materials/Graphical%20Kernel%20System.pdf The translator GOUTHGPL supports only a small subset of GKS; see again the example picture above. If you are interested for more details, you could contact me offline. Kind regards Bernd Am 15.11.2020 um 09:33 schrieb Darius Blaszyk via fpc-pascal: > Hi, > I am looking for a simple to use non-visual graphing> library to produce x-y plots in a raster file format (similar> to how pyplot works). Rather than developing something from> scratch or writing a wrapper to GNU plot (additional> dependency), I was hoping something like this already would> exist that I could build upon. > Thank you for any tips! > Rgds, Darius > _______________________________________________>fpc-pascal maillist - >https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal --- end of original message ---
Darius Blaszyk
to Bernd Oppolzer: I don't know if this can help you, but in the 1980s I worked with a library called GKS…

Hi Bernd and leledumbo,

Thanks for your responses. For now, I have settled on GNUplot. This tool creates very nice plots and allows to export in a variety of formats (vector and raster). I have written a wrapper that creates a script as Bernd mentioned and runs the GNUplot tool from the command-line. The wrapper has a simple API that allows to toggle settings and add series as required. If interested then please let me know and I will share. In time I would like to add a native vector output to this plotting library. I had a brief look at SVG and that should be possible.

Kind regards, Darius

On Sun, Nov 15, 2020 at 11:25 PM Bernd Oppolzer via fpc-pascal <

Show quoted text 61 lines
wrote: Hi, I don't know if this can help you, but in the 1980s I worked with a library called GKS (graphic kernel system) which I used to build such graphics like the following example: http://bernd-oppolzer.de/fdynsb.pdf This programs that did this were written in Pascal at that time. It still works today for me (the customer still uses this software), although is it C today, and GKS is not available any more. What I did: the original GKS calls are written to files (some sort of GKS metafile, but not the original 1980s format), and then this file format is read by a C program GOUTHPGL, which translates this (proprietary) format to HPGL. The HPGL files are either sent to HP plotters or translated to PDF using public domain software; see the file above. (GOUTHGPL was a Pascal program in the 1990s, too). IMO, you could easily write the "GKS metafile format" with Pascal; in fact, it is simply is a sort of logfile of the GKS calls. Here is an old paper about the GKS system: http://nsucgcourse.github.io/lectures/Lecture01/Materials/Graphical%20Kernel%20System.pdf The translator GOUTHGPL supports only a small subset of GKS; see again the example picture above. If you are interested for more details, you could contact me offline. Kind regards Bernd Am 15.11.2020 um 09:33 schrieb Darius Blaszyk via fpc-pascal: Hi, I am looking for a simple to use non-visual graphing library to produce x-y plots in a raster file format (similar to how pyplot works). Rather than developing something from scratch or writing a wrapper to GNU plot (additional dependency), I was hoping something like this already would exist that I could build upon. Thank you for any tips! Rgds, Darius _______________________________________________ fpc-pascal maillist - _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Graeme Geldenhuys
to Darius Blaszyk: I am looking for a simple to use non-visual graphing library to produce x-y plots in a …
Darius Blaszyk wrote
I am looking for a simple to use non-visual graphing library to produce x-y plots in a raster file format (similar to how pyplot works).

You could also use the fppdf code included with FPC and generate PDFs of any size (you don't have to stick to standard paper sizes). Not sure if PDF will suit your needs, but you will end up with a very portable format that scales.

Secondly, you could also use AGG-Pas. It's fully implemented in Object Pascal so is very portable (I've used it on RPi, Windows, Linux, FreeBSD and OSX). It is a anti-alias sub-pixel framework with configurable rendering pipelines. You can use the "raw" API to get the most flexibility, or use the easier 2D unit but reduces functionality and flexibility. The latest code is included with the fpGUI project, but still 100% stand-alone - no dependencies on fpGUI at all. It also comes with a huge about of demos so show off the features.

Original AGG-Pas website. But as I said, the code in fpGUI's repo is newer with multiple bug fixes and improvements.

http://crossgl.com/aggpas/documentation/index.html

Both options have no dependencies on graphics libraries or GUI systems, so is perfect for console of server side rendering.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp
James Richters
to Graeme Geldenhuys

Fppdf sounds interesting. I'm already using AGG-Pas in my project, and I am quite happy with it. Exporting PDF files from my AGG-Pas buffer would be really nice. I did a quick search and didn't find any documentation for it, is there a link for this? Would you happen to have a sample program of how to generate a PDF from my AGG-Pas buffer?

James

Earlier message 30 lines
-----Original Message----- From: fpc-pascal On Behalf Of Graeme Geldenhuys via fpc-pascal Sent: Wednesday, November 18, 2020 4:31 PM To: Cc: Graeme Geldenhuys Subject: Re: [fpc-pascal] Graphing library On 15/11/2020 8:33 am, Darius Blaszyk via fpc-pascal wrote: > I am looking for a simple to use non-visual graphing library to > produce x-y plots in a raster file format (similar to how pyplot works). You could also use the fppdf code included with FPC and generate PDFs of any size (you don't have to stick to standard paper sizes). Not sure if PDF will suit your needs, but you will end up with a very portable format that scales. Secondly, you could also use AGG-Pas. It's fully implemented in Object Pascal so is very portable (I've used it on RPi, Windows, Linux, FreeBSD and OSX). It is a anti-alias sub-pixel framework with configurable rendering pipelines. You can use the "raw" API to get the most flexibility, or use the easier 2D unit but reduces functionality and flexibility. The latest code is included with the fpGUI project, but still 100% stand-alone - no dependencies on also comes with a huge about of demos so show off the features. Original AGG-Pas website. But as I said, the code in fpGUI's repo is newer with multiple bug fixes and improvements. http://crossgl.com/aggpas/documentation/index.html Both options have no dependencies on graphics libraries or GUI systems, so is perfect for console of server side rendering. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp _______________________________________________
Graeme Geldenhuys
to James Richters
James Richters wrote
Exporting PDF files from my AGG-Pas buffer would be really nice.

Indeed an interesting idea, but unfortunately that ability has not been implemented yet. In my earlier message I was more referring to using either fpPDF or AggPas.

Saying that I'm not saying it's impossible for AggPas to generate PDF's - I've just not looked into it. ;-)

Would you happen to have a sample program of how to generate a PDF from my Agg-Pas buffer

As I mentioned, that functionality does not exist yet. If you want examples of how to generate PDFs using fpPDF however, the FPC code includes examples, and you can also take a look at the fpReport code too, as it can use fpPDF as report output renderer too.

On a side note:
I also wrote an AggPas report output renderer for fpReport, but not sure if that was included with FPC at the time. If not, it is available in the fpGUI's code repository.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp