假设我有一个每行感知的文件,如下所示:
0.86
0.456
0.4389
0.56
0.69
0.468
0.46
0.368
0.9
...
我想使用gnuplot
gem在Ruby脚本中绘制这些数据的直方图。
它可能看起来像高斯钟。
我该怎么做?
答案 0 :(得分:2)
尝试使用gnuplot gem时我有一些乐趣:)
给出像这样的文件data.txt
0.86
0.456
0.4389
0.56
0.69
0.468
0.46
0.368
0.9
这个Ruby类应该可以解决这个问题:
require 'gnuplot'
class DataPlotter
class << self
def plot_data(data)
Gnuplot.open do |gp|
Gnuplot::Plot.new(gp) do |plot|
plot.title "Data Plot Example"
plot.data << Gnuplot::DataSet.new(data) do |ds|
ds.with = "linespoints"
ds.notitle
end
end
end
end
def load_data_from_file(filename)
File.open(filename).readlines.map do |line|
line.chomp.to_f
end
end
def plot_file(filename)
plot_data(load_data_from_file(filename))
end
end
end
DataPlotter.plot_file('data.txt')
给出了这个结果: