This is a multi-part message in MIME format.
--------------040609040008020505060805
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Hi Tom,
Tom said:
...searching the RAA came up with ruby-gdchart:
http://raa.ruby-lang.org/list.rhtml?name=ruby-gdchart
Is this what folks are using?
I have been using it for a while and it has fit all my requirements.
I have created my own class to save some typing.(Attached).
Then you can do something like this:
require 'graph'
def graph_txt(txtfile,labelcolumn,datacolumn,delimeter=" ")
data=Array.new
labels=Array.new
File.new(txtfile).each do |lines|
lines.split("\n").each do |line|
data << line.split(delimeter)[datacolumn]
labels << line.split(delimeter)[labelcolumn]
end
end
data.map! {|x| x.to_i }
g=Graphs.new
options={
"title" => "Time",
"type" => "BAR3D",
"name" => "1",
"data"=> data,
"labels"=> labels,
"ytitle"=> "Y",
"xtitle"=> "X",
"dir" =>"/home/rbermejo",
"xlabel_spacing" => 0
}
g.create(options)
end
graph_txt("txtfile",0,1)
-rodrigo
-----------------
$ ls /usr/bin
ls
ruby
$
----------------
--------------040609040008020505060805
Content-Type: text/plain;
name="graph.rb"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="graph.rb"
#!/usr/bin/ruby
class Graphs
require 'GDChart'
def initialize
@options=" "
self.default
end
def default
if File.exist?("graph_default.rb")
require 'graph_default'
else
@graph_default=Hash.new
@graph_default["bgcolor"] = 0x3a3a3a
@graph_default["numset"] = 1
@graph_default["bgimage"] = "/icons/graphbg.gif"
@graph_default["dir"] = "./"
@graph_default["file"] = "testing.png"
@graph_default["extcolor"] = [ 0xc6c0c0, 0x466387 ]
@graph_default["gridcolor"] = 0x466387
@graph_default["labels"] = [ ]
@graph_default["titlecolor"] = 0xc6c0c0
@graph_default["linecolor"] = 0xefe413
@graph_default["title"] = "graph"
@graph_default["xlabel_spacing"]= 0
@graph_default["xsize"] = 350
@graph_default["xtitle"] = ""
@graph_default["ysize"] = 350
@graph_default["ytitlecolor"] = 0xc6c0c0
@graph_default["xtitlecolor"] = 0xc6c0c0
@graph_default["ytitle"] = "y"
end
end
def setvalue(var)
if not @options.has_key?(var)
@options[var]=@graph_default[var]
end
return @options[var]
end
def create(options)
@options=options
@options.each {|k,v| eval " \@#{k}= v "}
begin
gdc = GDChart.new
#############
# TITLE #
#############
gdc.title_size = GDChart::MEDBOLD
gdc.title = setvalue("title")
gdc.ytitle = setvalue("ytitle")
gdc.xtitle = setvalue("xtitle")
gdc.TitleColor = setvalue("titlecolor")
gdc.YTitleColor = setvalue("ytitlecolor")
#############
# BODY #
#############
gdc.ExtColor = setvalue("extcolor")
gdc.LineColor = setvalue("linecolor")
gdc.BGImage = setvalue("bgimage")
gdc.BGColor = setvalue("bgcolor")
gdc.GridColor = setvalue("gridcolor")
gdc.xlabel_spacing = setvalue("xlabel_spacing")
gdc.bar_width = setvalue("bar_width")
gdc.border = setvalue("border")
gdc.ylabel_fmt= setvalue("ylabel_fmt")
#############
# FILE #
#############
@ysize=setvalue("ysize")
@xsize=setvalue("xsize")
@name=setvalue("name")
@dir=setvalue("dir")
@file=File.open "#{@dir}/#{@name}.png" , "w"
#############
# DATA #
#############
@numset=setvalue("numset")
############
# MAIN #
############
if @type =~ /pie/i then
eval " gdc.out_graph(\@ysize,\@xsize, \@file, GDChartPie::#{@type}, \@data.length, \@labels,\@numset, \@data) "
else
eval " gdc.out_graph(\@ysize,\@xsize, \@file, GDChart::#{@type}, \@data.length/@numset, \@labels,\@numset, \@data,\@data) "
end
rescue Exception => error
print "create error:#{error}\n"
end
end
end
--------------040609040008020505060805--