Plotrobber
A prettier DSL for Gnuplot and Ruby.
Don't write this:
Gnuplot.open do |gp|
Gnuplot::Plot.new( gp ) do |plot|
plot.xrange "[-10:10]"
plot.title "Sin Wave Example"
plot.ylabel "sin(x) and cos(x)"
plot.xlabel "x"
plot.data << Gnuplot::DataSet.new("sin(x)") do |ds|
ds.with = "lines"
ds.linewidth = 4
end
plot.data << Gnuplot::DataSet.new("cos(x)") do |ds|
ds.with = "lines"
ds.linewidth = 2
end
end
end
Do write this:
require 'plotrobber'
plotting {
plot('Sine Wave Example') {
xlabel 'x'
xrange '[-10:10]'
ylabel 'sin(x)'
show 'sin(x)', with: 'lines', linewidth: 4
show 'cos(x)', with: 'lines', linewidth: 2
}
}
Even more convenient:
plot('Fit some data') {
fn = fit SOME_DATA, [1,3] # Find linear fit using columns 1 and 3.
show fn # Plots the line of best fit
candlesticks SOME_DATA # Plots candlesticks using 1:3:2:6:5
}
Installation
The usual:
gem 'plotrobber'
Why "plotrobber"?
Plot for gnuplot. Robber. Robbe. Robb. Rob. Rb. Ruby.