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

Discussion in 'C Programming' started by Guest, May 20, 2008.

  1. Guest

    Guest

    Joined:
    Feb 4, 2010
    Messages:
    12
    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!
    Guest, May 20, 2008
    #1
    1. Advertising

  2. Guest

    Lionel B Guest

    Re: [OT] Tabular output and plotting 2d/3d data in C++

    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 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,

    --
    Lionel B
    Lionel B, May 20, 2008
    #2
    1. Advertising

  3. Guest

    Jerry Coffin Guest

    In article <40435691-5738-4df3-8dfe-e81de017e9fa@
    2g2000hsn.googlegroups.com>, says...
    > 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.

    --
    Later,
    Jerry.

    The universe is a figment of its own imagination.
    Jerry Coffin, May 21, 2008
    #3
  4. Guest

    Guest

    Joined:
    Feb 4, 2010
    Messages:
    12
    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 <> 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
    Guest, May 21, 2008
    #4
  5. Guest

    Lionel B Guest

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

    [please don't top-post - re-arranged]

    > On May 20, 6:42 pm, Lionel B <> 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 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,
    >>
    >> --
    >> Lionel B


    ^^^^^^^^
    [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?

    --
    Lionel B
    Lionel B, May 22, 2008
    #5
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. ronrsr
    Replies:
    5
    Views:
    336
    ronrsr
    Nov 13, 2006
  2. Replies:
    3
    Views:
    878
    James Kanze
    Jun 20, 2007
  3. Replies:
    4
    Views:
    242
  4. murrayatuptowngallery
    Replies:
    0
    Views:
    89
    murrayatuptowngallery
    Feb 11, 2008
  5. Will
    Replies:
    3
    Views:
    106
    Thomas 'PointedEars' Lahn
    Jun 26, 2009
Loading...

Share This Page