Ruby Graphing/chart libraries?

C

Chris Williams

------=_NextPart_000_0001_01C4D7DC.97D28630
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi all,
I'm trying to set up a Ruby/Rails app at work and for a
great deal of the pages I'll need to display graphs and charts of data.
Does anyone know of a simple package that can create bar, x-y plot, pie,
and other basic charts in a usable format? (I'm speaking gif, jpg, png.
I like the looks of the SVG::Graph library, but SVG support doesn't come
with any of the browsers yet.)

Thanks,
Chris

------=_NextPart_000_0001_01C4D7DC.97D28630--
 
S

Stoyan Zhekov

Does anyone know of a simple package that can create bar, x-y plot, pie,
and other basic charts in a usable format? (I'm speaking gif, jpg, png.

We are using ruby-gd [ http://raa.ruby-lang.org/project/ruby-gd/ ] and
ruby-gdchart
[ http://raa.ruby-lang.org/project/gdchart/ ] . ruby-gd is wrapper
arroung lingd
[ http://www.boutell.com/gd/ ] and ruby-gdchart is wrapper around gd
specially for graphs
(bar, pie etc.). Pretty easy to use. Just not enough docs and i couldnt make it
run on windows (maybe will work with cygwin, i tryed the mingw).
Sample code for cgi:

require "cgi"
require "GD"
require 'GDChart'

cgi = CGI.new
print cgi.header("type"=>"image/png")
gdc = GDChart.new

gdc.image_type = GDChart::pNG

gdc.title = "The Title"
gdc.title_size = GDChart::GIANT

gdc.xtitle = "X-axis"
gdc.ytitle = "Y-axis"

gdc.ExtColor = [ 0xFF3399, 0xFF9933, 0xFFEE33, 0x33FF33, 0x33FFCC, 0x9966FF ]
gdc.BGColor = 0xFFFFFF

data = [ 7, 11, 13, 17, 19, 23 ]
label = ['Value X','Value Y']

gdc.out_graph(600, 400, $stdout, GDChart::BAR3D, data.length, label, 1, data)
 
C

Chris Williams

Does anyone know of a simple package that can create bar, x-y plot, pie,
and other basic charts in a usable format? (I'm speaking gif, jpg,
png.

We are using ruby-gd [ http://raa.ruby-lang.org/project/ruby-gd/ ] and
ruby-gdchart
[ http://raa.ruby-lang.org/project/gdchart/ ] . ruby-gd is wrapper
arroung lingd
[ http://www.boutell.com/gd/ ] and ruby-gdchart is wrapper around gd
specially for graphs
(bar, pie etc.). Pretty easy to use. Just not enough docs and i couldnt
make it
run on windows (maybe will work with cygwin, i tryed the mingw).

I suppose I should add that I need it to work on Windows...

Chris
 
M

Michael Neumann

Chris said:
Hi all,
I'm trying to set up a Ruby/Rails app at work and for a
great deal of the pages I'll need to display graphs and charts of data.
Does anyone know of a simple package that can create bar, x-y plot, pie,
and other basic charts in a usable format? (I'm speaking gif, jpg, png.
I like the looks of the SVG::Graph library, but SVG support doesn't come
with any of the browsers yet.)

I've used gnuplot for this: http://ntecs.de/wee/ehf
(http://www.ntecs.de/blog/Blog/FirstAppUsingWee.rdoc)

Below is the code snippet that generates the diagram using gnuplot.

Two other options are:

gd-graph: http://www.ntecs.de/viewcvs/viewcvs/gd-graph/
ploticus: http://www.ntecs.de/viewcvs/viewcvs/ruby-ploticus/

Regards,

Michael



###############################################
g = IO.popen("gnuplot", "w+")

points1 = []
points2 = []

for i in 1..600
points1 << [i, vg]
points2 << [i, vd]
end

g.puts "set terminal png transparent small size 640,480 " +
"xffffff x000000 x404040 " +
"x0ff00f xf00f0f x66cdaa xcdb5cd " +
"xadd8e6 x0000ff xdda0dd x9500d3"

g.puts "set autoscale y"
g.puts "set xrange [0:600]"
g.puts "set xlabel 'Monate'"
g.puts "set ylabel 'Euro'"
g.puts "set grid"
g.puts "set noborder"

s = (["'1' 1"] + (60..600).to_enum:)step, 60).map {|i| "'#{i}' #{i}"
}).join(",")
g.puts "set xtics (#{s})"
g.puts "set key on below"

g.puts "plot '-' title 'Guthaben' with filledcurves, '-' title
'Darlehen' with filledcurves"
g.puts points1.map{|v| v.join(" ")}.join("\n")
g.puts "\ne\n"
g.puts points2.map{|v| v.join(" ")}.join("\n")
g.puts "\ne"

g.close_write
png = g.read
File.open('test.png', 'w+') {|f| f << png}
 

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

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top