Gnuplot with ruby - unset variable?

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 ’ you do plot.border “”.

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

Hi —

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’?

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

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.

Should I give up and use R :?

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

Joel VanderWerf wrote:

No docs, but there are
some examples[3] that should explain how to use it.

Well, minimal docs now.

M3tr0 G33k wrote:

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

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] Science

[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

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 wrote:

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).

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.

Axel E. wrote:

Best regards,

Axel

Thanks!
Works a treat.

M3tr0 G33k wrote:

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 ’ you do plot.border “”.

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

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.