Tabular output and plotting 2d/3d data in C++

Joined
Feb 4, 2010
Messages
28
Reaction score
0
Hi there!
I need a C++ library that can organize and write scientific (and
numerical overall) data in tables. I have been fighting with
std::eek:fstream and plain ASCII files, but it is difficult to position
columns by an offset, impossible to draw table borders etc. I am
currently thinking of a class that is able to write to an html file,
e.g. As far as I know, html offers much better text (and table)
layout. And the format is portable! What I need is a C++ facility to
automate the generation process. It doesn't need to be html
necessarily - as long as the output is nice, it will be ok. Even a pdf
file could suit me. Any ideas?
The next question: I also need to plot some scientific data. Say, I
need the graphics in a vector format and not a raster pixels. I might
consider importing the data in Excel for later editing, e.g. What C++
library can do that?

Thanks in advance!
 
L

Lionel B

Hi there!
I need a C++ library that can organize and write scientific (and
numerical overall) data in tables. I have been fighting with
std::eek:fstream and plain ASCII files, but it is difficult to position
columns by an offset, impossible to draw table borders etc. I am
currently thinking of a class that is able to write to an html file,
e.g. As far as I know, html offers much better text (and table) layout.
And the format is portable! What I need is a C++ facility to automate
the generation process. It doesn't need to be html necessarily - as long
as the output is nice, it will be ok. Even a pdf file could suit me. Any
ideas?

This is, I think, somewhat OT (this newsgroup deals specifically with C++
*language* issues, rather than [non-standard] libraries), but anyway...

Tables and formatted output in html are pretty simple - I can't see it'd
be much of a problem just to write out the appropriate html from your
(C++, whatever) program.

Another option would be to figure out how to do tables in LaTeX, get your
program to chug out the appropriate LaTeX source (which is also just
plain text) and then run pdflatex on it for pdf output.

Depends what you want, really.
The next question: I also need to plot some scientific data. Say, I need
the graphics in a vector format and not a raster pixels.

I can highly recommend Gnuplot http://www.gnuplot.info/ for scientific
plotting. It's very powerful, does many graphics formats, bitmapped &
vector (including Postscript, pdf, SVG, ...) and if your platform
supports pipes you can pipe commands to it programmatically; or even if
you can't do that, you can just write data files and command scripts from
your program - I do this all the time).
I might
consider importing the data in Excel for later editing, e.g. What C++
library can do that?

Urgh to Excel :-/, but Gnuplot accepts ASCII data which you can edit in
any text editor.

Cheers,
 
J

Jerry Coffin

Hi there!
I need a C++ library that can organize and write scientific (and
numerical overall) data in tables. I have been fighting with
std::eek:fstream and plain ASCII files, but it is difficult to position
columns by an offset, impossible to draw table borders etc. I am
currently thinking of a class that is able to write to an html file,
e.g. As far as I know, html offers much better text (and table)
layout. And the format is portable! What I need is a C++ facility to
automate the generation process. It doesn't need to be html
necessarily - as long as the output is nice, it will be ok. Even a pdf
file could suit me. Any ideas?

As far as C++ cares, HTML is just a text file with some slightly unusual
contents.

If the format you're going to use is relatively fixed, so you don't mind
encoding its overall structure into the structure of your code, you can
pretty easily create some objects that emit an opening HTML tag in their
ctor, and a matching closing tag in their dtor.

Another alternative is to create some stream manipulators that emit HTML
tags as needed. You can either create separate manipulators for the
open/close tags, or you can create a manipulator that takes a parameter,
and encloses its parameter within the appropriate open/close tags.
The next question: I also need to plot some scientific data. Say, I
need the graphics in a vector format and not a raster pixels. I might
consider importing the data in Excel for later editing, e.g. What C++
library can do that?

If you want to export the data for reading by Excel, the obvious way
would be to emit a file of comma separated values. Reading CSV files is
a bit of a pain, but writing them is pretty trivial -- you basically
convert any embedded quote to a pair of quotes, enclose each value in
quotes, and put commas between the quoted fields. The hardest part is
probably keeping track of ends of lines and assuring you only put a
comma _between_ fields, not after the last field on a line.

A CSV file basically just includes your raw data, and it's up to the
user to pick the appropriate type of plot in Excel (or whatever). If you
know much about your data, you might be able to save your user trouble
by having your program specify plot types more directly. In this case,
something like gnuplot might be considerably easier to use in the long
term.
 
Joined
Feb 4, 2010
Messages
28
Reaction score
0
I wonder why no one mentioned http://www.xportpro.com/
???
Why? Do you think I am going to reinvent the wheel? These libraries
are written to be used, not to be hidden!




On May 20, 6:42 pm, Lionel B <[email protected]> wrote:
> On Tue, 20 May 2008 08:48:02 -0700, zdravko.monov wrote:
> > Hi there!
> > I need a C++ library that can organize and write scientific (and
> > numerical overall) data in tables. I have been fighting with
> > std::eek:fstream and plain ASCII files, but it is difficult to position
> > columns by an offset, impossible to draw table borders etc. I am
> > currently thinking of a class that is able to write to an html file,
> > e.g. As far as I know, html offers much better text (and table) layout.
> > And the format is portable! What I need is a C++ facility to automate
> > the generation process. It doesn't need to be html necessarily - as long
> > as the output is nice, it will be ok. Even a pdf file could suit me. Any
> > ideas?

>
> This is, I think, somewhat OT (this newsgroup deals specifically with C++
> *language* issues, rather than [non-standard] libraries), but anyway...
>
> Tables and formatted output in html are pretty simple - I can't see it'd
> be much of a problem just to write out the appropriate html from your
> (C++, whatever) program.
>
> Another option would be to figure out how to do tables in LaTeX, get your
> program to chug out the appropriate LaTeX source (which is also just
> plain text) and then run pdflatex on it for pdf output.
>
> Depends what you want, really.
>
> > The next question: I also need to plot some scientific data. Say, I need
> > the graphics in a vector format and not a raster pixels.

>
> I can highly recommend Gnuplothttp://www.gnuplot.info/for scientific
> plotting. It's very powerful, does many graphics formats, bitmapped &
> vector (including Postscript, pdf, SVG, ...) and if your platform
> supports pipes you can pipe commands to it programmatically; or even if
> you can't do that, you can just write data files and command scripts from
> your program - I do this all the time).
>
> > I might
> > consider importing the data in Excel for later editing, e.g. What C++
> > library can do that?

>
> Urgh to Excel :-/, but Gnuplot accepts ASCII data which you can edit in
> any text editor.
>
> Cheers,
>
> --
> Lionel B
 
L

Lionel B

On Wed, 21 May 2008 13:47:14 -0700, zdravko.monov wrote:

[please don't top-post - re-arranged]
Hi there!
I need a C++ library that can organize and write scientific (and
numerical overall) data in tables. I have been fighting with
std::eek:fstream and plain ASCII files, but it is difficult to position
columns by an offset, impossible to draw table borders etc. I am
currently thinking of a class that is able to write to an html file,
e.g. As far as I know, html offers much better text (and table)
layout. And the format is portable! What I need is a C++ facility to
automate the generation process. It doesn't need to be html
necessarily - as long as the output is nice, it will be ok. Even a
pdf file could suit me. Any ideas?

This is, I think, somewhat OT (this newsgroup deals specifically with
C++ *language* issues, rather than [non-standard] libraries), but
anyway...

Tables and formatted output in html are pretty simple - I can't see
it'd be much of a problem just to write out the appropriate html from
your (C++, whatever) program.

Another option would be to figure out how to do tables in LaTeX, get
your program to chug out the appropriate LaTeX source (which is also
just plain text) and then run pdflatex on it for pdf output.

Depends what you want, really.
The next question: I also need to plot some scientific data. Say, I
need the graphics in a vector format and not a raster pixels.

I can highly recommend Gnuplot http://www.gnuplot.info/for scientific
plotting. It's very powerful, does many graphics formats, bitmapped &
vector (including Postscript, pdf, SVG, ...) and if your platform
supports pipes you can pipe commands to it programmatically; or even if
you can't do that, you can just write data files and command scripts
from your program - I do this all the time).
I might
consider importing the data in Excel for later editing, e.g. What C++
library can do that?

Urgh to Excel :-/, but Gnuplot accepts ASCII data which you can edit in
any text editor.

Cheers,

^^^^^^^^
[please don't quote signatures]
I wonder why no one mentioned http://www.xportpro.com/ ???
Why?

Because no-one that replied had heard of it, maybe?
Do you think I am going to reinvent the wheel?

Dunno, you tell me.
These libraries are written to be used, not to be hidden!

it was hidden? You found it.

Anyway, what's this got to do with my reply?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top