Gnuplot with ruby - unset variable?

Discussion in 'Ruby' started by M3tr0 G33k, Jul 7, 2008.

  1. M3tr0 G33k

    M3tr0 G33k Guest

    Hi all,

    Seems like rgplot2.2 is inactive - is this correct?
    I am used to gnuplot, so I went to it first when starting with Ruby.
    One problem - trying to replicate 'unset border'

    All of the 'set' actions in Gnuplot::plot are listed individually.
    This means that to do 'set border <some args>' you do plot.border "<some
    args>".

    But to do 'unset border' you can't do plot.border "unset" because you
    get an error from gnuplot like 'set unset border ERROR'. This seems
    right for the way rgplot works, but how do you do 'unset border'?

    Should I give up and use R :?

    Thanks in advance, if anyone can help

    m3tr0g33k
     
    M3tr0 G33k, Jul 7, 2008
    #1
    1. Advertisements

  2. M3tr0 G33k

    Axel Etzold Guest

    Hi ---
    It seems that earlier versions of Gnuplot used to have the command
    set no<command>
    instead of
    unset <command> ,

    and rgplot expects this ... and hasn't been updated for a while.
    When I enter "set noborder" in my Gnuplot 4.2 at the command line, it complains about a deprecated
    syntax, but nevertheless removes the border.
    Maybe you'll also have a look at tioga (rubyforge.org/projects/tioga/) for an alternative
    to Gnuplot. Should you know how to compile it in Windows, please leave a note.

    Best regards,

    Axel
     
    Axel Etzold, Jul 7, 2008
    #2
    1. Advertisements

  3. Hello, Mr. G33k,

    I use an interface[1] that doesn't attempt to turn gnuplot commands into
    objects and methods--you just pipe commands to gnuplot. But it does
    solve a number of other problems, like passing your data via tempfiles
    to gnuplot and persisting windows, both Windows and X11. (Persisting
    windows on X11 is kinda tricky[2] for gnuplot version <4.3--if you do it
    wrong you end up with zombie processes, and the -persist option is not
    acceptable since it disables mouse interaction.) No docs, but there are
    some examples[3] that should explain how to use it.

    [1] http://redshift.sourceforge.net/sci/

    [2] http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/293549

    [3] Simple example:

    require 'sci/plot'
    include Plot::plotUtils

    sin_graph, cos_graph = [], []

    0.step(2*Math::pI, 0.01) do |x|
    sin_graph << [x, Math::sin(x)]
    cos_graph << [x, Math::cos(x)]
    end

    plot = gnuplot do |plot|
    plot.command %{set title "Plot example"}
    plot.command %{set xlabel "x"}
    plot.command %{set ylabel "y"}
    plot.add sin_graph, %{title "sin(x)" with lines}
    plot.add cos_graph, %{title "cos(x)" with lines}
    plot.add "sin(x) + 1", %{title "sin(x) + 1"}
    end
     
    Joel VanderWerf, Jul 7, 2008
    #3
  4. Well, minimal docs now.
     
    Joel VanderWerf, Jul 7, 2008
    #4
  5. M3tr0 G33k

    M3tr0 G33k Guest

    Thanks!
    Works a treat.
     
    M3tr0 G33k, Jul 7, 2008
    #5
  6. M3tr0 G33k

    M3tr0 G33k Guest

    Thanks for your reply, Joel VanderWerf.

    I am mainly getting data from csv files and plotting to ps images.
    Thankfully window persistence doesn't bother me (yet).

    Appreciate your input,

    m3tr0g33k
     
    M3tr0 G33k, Jul 7, 2008
    #6
  7. Ok. If you ever write a GUI that puts up graph windows that the user can
    control and dismiss, then my lib may be useful.
     
    Joel VanderWerf, Jul 7, 2008
    #7
  8. FYI (I know this was days ago), but if you want to unset something like
    ytics for example, you would write plot.noytics. If you wanted to unset
    border you would write plot.noborder. Hope that helps.
     
    Philip Rutkowski, Jul 17, 2008
    #8
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.