class PlotData
gnuplotが扱えるデータフォーマットへの変換¶ ↑
Usage¶ ↑
data0 = PlotData.new(name0,0,3,name) data0.add_general_data(name1, 0, 2) start=Time.parse(Time.now.to_s) x_func = proc{|x| ((Time.parse(x)-start)/3600/24) } y_func = proc{|y| y.to_f/60.0 } data0.mk_plot_data(x_func,y_func) data0.sort data0.sum_data
Attributes
data[RW]
title[RW]
Public Class Methods
new(file_name="",x_col=nil,y_col=nil,title="")
click to toggle source
# File lib/shunkuntype/plot_data.rb, line 19 def initialize(file_name="",x_col=nil,y_col=nil,title="") @data=[] read_general_data(file_name,x_col,y_col) if ""!=file_name @title=title if ""!=title end
Public Instance Methods
add_general_data(file, x_col, y_col)
click to toggle source
@!group data read
# File lib/shunkuntype/plot_data.rb, line 26 def add_general_data(file, x_col, y_col) read_general_data(file, x_col, y_col) end
mk_plot_data(x_func,y_func)
click to toggle source
x_func,y_funcに変換関数をyieldで入れる
# File lib/shunkuntype/plot_data.rb, line 56 def mk_plot_data(x_func,y_func) tmp_data=[] @data.each{|ele| x_data = x_func.call(ele[0]) y_data = y_func.call(ele[1]) tmp_data << [x_data,y_data] } @data = tmp_data end
read_general_data(file, x_col, y_col)
click to toggle source
# File lib/shunkuntype/plot_data.rb, line 30 def read_general_data(file, x_col, y_col) begin File.open(file,'r'){|file| while line=file.gets do tmp=line.chomp.split(',') @data << [tmp[x_col],tmp[y_col]] end } rescue => e p e end end
sort()
click to toggle source
x軸の値によってsortをかける.
# File lib/shunkuntype/plot_data.rb, line 75 def sort @data.sort!{|x,y| x[0] <=> y[0]} end
sum_data()
click to toggle source
y軸の値の積分を取る
# File lib/shunkuntype/plot_data.rb, line 67 def sum_data tmp_data=[] y_data=0 @data.each{|ele| tmp_data << [ele[0], y_data+=ele[1]]} @data = tmp_data end
to_gnuplot()
click to toggle source
gnuplot libraryに沿った形のdataを出力.
列データを行データに
# File lib/shunkuntype/plot_data.rb, line 46 def to_gnuplot() x,y=[],[] @data.each{|ele| x << ele[0] y << ele[1] } return [x,y] end