ruby-plot 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/plot_bars.rb +3 -2
- data/lib/plot_box.rb +113 -0
- data/lib/plot_lines.rb +17 -23
- data/lib/plot_points.rb +71 -45
- data/lib/ruby-plot.rb +3 -0
- metadata +5 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/plot_bars.rb
CHANGED
@@ -6,6 +6,7 @@ module RubyPlot
|
|
6
6
|
#puts "'"+title+"',"+measures.inspect+","+algorithms.inspect+","
|
7
7
|
|
8
8
|
measures = measures.collect{|m| m.gsub(/_/,'-')}
|
9
|
+
algorithms = algorithms.each{|m| m[0].gsub!(/_/,'-')}
|
9
10
|
|
10
11
|
Gnuplot.open do |gp|
|
11
12
|
Gnuplot::Plot.new( gp ) do |plot|
|
@@ -63,11 +64,11 @@ module RubyPlot
|
|
63
64
|
|
64
65
|
def self.test_plot_bars
|
65
66
|
x = ['ACC_with_very_long_name_consider_that', 'AUC', 'SPEC', 'SENS']
|
66
|
-
data = [['
|
67
|
+
data = [['Baller_Algorithm_1', 1.00, 1.00, 1.00, 1.00], ['Alg2', 0.75, 0.75, 0.75, 0.75], ['Alg3', 0.50, 0.50, 0.50, 0.50]]
|
67
68
|
plot_bars('Vergleich der Algorithmen', x, data, '/tmp/hist.svg')
|
68
69
|
|
69
70
|
x = ['ACC_with_very_long_name_consider_that', 'AUC', 'SPEC', 'SENS']
|
70
|
-
data = [['
|
71
|
+
data = [['Baller_Algorithm_1', 1.00, 1.00, 1.00, 1.00], ['Alg2', 0.75, 0.75, 0.75, 0.75], ['Alg3', 0.50, 0.50, 0.50, 0.50]]
|
71
72
|
plot_bars('Vergleich der Algorithmen', x, data, '/tmp/hist.png')
|
72
73
|
end
|
73
74
|
|
data/lib/plot_box.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
|
3
|
+
module RubyPlot
|
4
|
+
|
5
|
+
def self.box_plot(path, title, y_lable, names, values)
|
6
|
+
|
7
|
+
LOGGER.debug "plot box -- names "+names.inspect
|
8
|
+
LOGGER.debug "plot box -- values "+values.inspect
|
9
|
+
|
10
|
+
# STDOUT.sync = true
|
11
|
+
raise if names.length != values.length
|
12
|
+
gnuplot = '/home/martin/software/gnuplot-dev/install/bin/gnuplot'
|
13
|
+
|
14
|
+
tmp_datasets = []
|
15
|
+
tmp_file = Tempfile.new("data.dat")
|
16
|
+
tmp_datasets << tmp_file
|
17
|
+
value_string = []
|
18
|
+
values.first.size.times do |i|
|
19
|
+
v = ""
|
20
|
+
values.each do |val|
|
21
|
+
v += val[i].to_s+" "
|
22
|
+
end
|
23
|
+
value_string << v.to_s
|
24
|
+
end
|
25
|
+
#puts value_string.join("\n")
|
26
|
+
|
27
|
+
tmp_file.puts value_string.join("\n")
|
28
|
+
tmp_file.close
|
29
|
+
LOGGER.debug "plot box -- dataset "+tmp_datasets.collect{|d| d.path}.inspect
|
30
|
+
|
31
|
+
#"name1" 1, "name2" 2, "name3" 3 ...
|
32
|
+
xtics_string = ""
|
33
|
+
names.size.times do |i|
|
34
|
+
xtics_string += "\""+names[i].to_s+"\" "+(i+1).to_s
|
35
|
+
xtics_string += ", " if i<names.size-1
|
36
|
+
end
|
37
|
+
#puts xtics_string
|
38
|
+
|
39
|
+
#plot '#{tmp_file.path}' using (1):1, '' using (2):2, '' using (3):3 ...
|
40
|
+
plot_string = "plot '#{tmp_file.path}' using (1):1"
|
41
|
+
if names.size>1
|
42
|
+
plot_string += ","
|
43
|
+
names.size.times do |i|
|
44
|
+
if i>0
|
45
|
+
plot_string += " '' using (#{i+1}):#{i+1}"
|
46
|
+
plot_string += "," if i<names.size-1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
#puts plot_string
|
51
|
+
#exit
|
52
|
+
|
53
|
+
plt = <<EOF
|
54
|
+
set terminal svg
|
55
|
+
set output '#{path}'
|
56
|
+
set border 2 front linetype -1 linewidth 1.000
|
57
|
+
set boxwidth 0.75 absolute
|
58
|
+
set style fill solid 0.25 border lt -1
|
59
|
+
unset key
|
60
|
+
set pointsize 0.5
|
61
|
+
set style data boxplot
|
62
|
+
set xtics border in scale 0,0 nomirror rotate offset character 0, 0, 0
|
63
|
+
set xtics norangelimit
|
64
|
+
set xtics (#{xtics_string})
|
65
|
+
set ytics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0
|
66
|
+
#set yrange [ 0.00000 : 100.000 ] noreverse nowriteback
|
67
|
+
#plot '#{tmp_file.path}' using (1):1, '' using (2):2, '' using (3):3
|
68
|
+
EOF
|
69
|
+
|
70
|
+
plt += plot_string
|
71
|
+
#puts plt
|
72
|
+
#exit
|
73
|
+
|
74
|
+
tmp_file = Tempfile.new("config.plt")
|
75
|
+
tmp_datasets << tmp_file
|
76
|
+
tmp_file.puts plt
|
77
|
+
tmp_file.close
|
78
|
+
|
79
|
+
# start gnuplot with created *.plt file
|
80
|
+
cmd = gnuplot+" "+tmp_file.path+" 2>&1"
|
81
|
+
LOGGER.debug "plot box -- running gnuplot '"+cmd+"'"
|
82
|
+
response = ""
|
83
|
+
IO.popen(cmd) do |f|
|
84
|
+
while line = f.gets
|
85
|
+
response += line
|
86
|
+
end
|
87
|
+
end
|
88
|
+
raise "gnuplot failes (cmd: "+cmd.to_s+", out: "+response.to_s+")" unless $?==0
|
89
|
+
LOGGER.info "plot box -- RESULT: #{path}"
|
90
|
+
|
91
|
+
tmp_datasets.each{|f| f.delete}
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.test_plot_box
|
95
|
+
# regression_point_plot("/tmp/regression.png" , "name of title", "x-values", "y-values", ["this-one-has-a-very-very-very-long-name", "test" ],
|
96
|
+
# [[0.20,0.60,0.80,0.20,1.0,0.001], [0.10,0.25,0.70,0.95,0.2,0.3434]],
|
97
|
+
# [[0.15,0.50,0.90,0.2,9,0.5],[0.20,0.40,0.50,0.70,0.3,0.234589]])
|
98
|
+
# accuracy_confidence_plot("/tmp/accuracy-conf.png" , "name of title", "x-values", "y-values", ["test" ],
|
99
|
+
# [[0.9,0.5,0.3,0.1]],
|
100
|
+
# [[100,90,70,30]])
|
101
|
+
x=[]; y=[]; z=[]; zz=[]
|
102
|
+
30.times do
|
103
|
+
x << 5 + rand * 4 * (rand<0.5 ? 1 : -1)
|
104
|
+
y << 5 + rand * 5 * (rand<0.5 ? 1 : -1)
|
105
|
+
z << 5 + rand * 6 * (rand<0.5 ? 1 : -1)
|
106
|
+
zz << 5 + rand * 5 * (rand<0.5 ? 1 : -1)
|
107
|
+
end
|
108
|
+
|
109
|
+
box_plot("/tmp/test-plot.svg" , "name of title", "values", ["x","y","z","zz"], [x,y,z,zz])
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
|
data/lib/plot_lines.rb
CHANGED
@@ -23,14 +23,13 @@ module RubyPlot
|
|
23
23
|
|
24
24
|
# gnuplot check
|
25
25
|
gnuplot=`which gnuplot | grep -o gnuplot`
|
26
|
-
if gnuplot
|
27
|
-
LOGGER.debug "Gnuplot is already installed."
|
28
|
-
else
|
26
|
+
if gnuplot!="gnuplot\n"
|
29
27
|
raise "Please install gnuplot.\n"+
|
30
28
|
"sudo apt-get install gnuplot"
|
31
29
|
end
|
32
30
|
|
33
31
|
output_dat_arr = Array.new
|
32
|
+
tmp_datasets = []
|
34
33
|
|
35
34
|
# -----------------------------------------------------
|
36
35
|
# create *.dat files of imported data for gnuplot
|
@@ -63,16 +62,16 @@ module RubyPlot
|
|
63
62
|
#write *.dat files
|
64
63
|
#-----------------------------------------------------
|
65
64
|
#write output_dat_arr content in new *.dat file
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
65
|
+
tmp_file = Tempfile.new("data#{i}.dat")
|
66
|
+
tmp_datasets << tmp_file
|
67
|
+
tmp_file.puts output_dat_arr
|
68
|
+
tmp_file.close
|
70
69
|
output_dat_arr.clear
|
71
|
-
|
72
70
|
else
|
73
71
|
raise "num x-values != y-values: "+plot_data[i].inspect
|
74
72
|
end
|
75
73
|
end
|
74
|
+
LOGGER.debug "plot lines -- datasets "+tmp_datasets.collect{|d| d.path}.inspect
|
76
75
|
|
77
76
|
# -----------------------------------------------------
|
78
77
|
# create *.plt file for gnuplot
|
@@ -135,9 +134,9 @@ module RubyPlot
|
|
135
134
|
style = plot_data[i].faint ? "lw 2" : "lw 4"
|
136
135
|
|
137
136
|
if i == plot_data.length-1
|
138
|
-
output_plt_arr.push " '
|
137
|
+
output_plt_arr.push " '"+tmp_datasets[i].path+"' using 2:1 title '#{plot_data[i].name}' with lines #{style}"
|
139
138
|
else
|
140
|
-
output_plt_arr.push " '
|
139
|
+
output_plt_arr.push " '"+tmp_datasets[i].path+"' using 2:1 title '#{plot_data[i].name}' with lines #{style}, \\"
|
141
140
|
end
|
142
141
|
end
|
143
142
|
output_plt_arr.push ""
|
@@ -147,13 +146,14 @@ module RubyPlot
|
|
147
146
|
# write *.plt files
|
148
147
|
# -----------------------------------------------------
|
149
148
|
# write output_dat_arr content in new *.dat file
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
tmp_file = Tempfile.new("config.plt")
|
150
|
+
tmp_datasets << tmp_file
|
151
|
+
tmp_file.puts output_plt_arr
|
152
|
+
tmp_file.close
|
154
153
|
|
155
154
|
# start gnuplot with created *.plt file
|
156
|
-
cmd = "gnuplot
|
155
|
+
cmd = "gnuplot "+tmp_file.path+" 2>&1"
|
156
|
+
LOGGER.debug "plot lines -- running gnuplot '"+cmd+"'"
|
157
157
|
response = ""
|
158
158
|
IO.popen(cmd) do |f|
|
159
159
|
while line = f.gets
|
@@ -161,18 +161,12 @@ module RubyPlot
|
|
161
161
|
end
|
162
162
|
end
|
163
163
|
raise "gnuplot failes (cmd: "+cmd.to_s+", out: "+response.to_s+")" unless $?==0
|
164
|
-
|
165
|
-
LOGGER.debug "#{path} created. "
|
164
|
+
LOGGER.info "plot lines -- RESULT: #{path}"
|
166
165
|
|
167
166
|
# -----------------------------------------------------
|
168
167
|
# remove *.plt and *.dat files
|
169
168
|
# -----------------------------------------------------
|
170
|
-
|
171
|
-
LOGGER.debug "config.plt removed."
|
172
|
-
for i in 0..plot_data.length-1
|
173
|
-
`rm data#{i}.dat`
|
174
|
-
LOGGER.debug "data#{i}.dat removed."
|
175
|
-
end
|
169
|
+
tmp_datasets.each{|f| f.delete}
|
176
170
|
end
|
177
171
|
|
178
172
|
def self.test_plot_lines
|
data/lib/plot_points.rb
CHANGED
@@ -10,6 +10,10 @@ module RubyPlot
|
|
10
10
|
|
11
11
|
def self.regression_point_plot(path, title, x_lable, y_lable, names, x_values, y_values, log=true) #, quadratic_scale=true, line_points=false, reverse_x=false)
|
12
12
|
|
13
|
+
LOGGER.debug "plot regr -- names "+names.inspect
|
14
|
+
LOGGER.debug "plot regr -- x "+x_values.inspect
|
15
|
+
LOGGER.debug "plot regr -- y "+y_values.inspect
|
16
|
+
|
13
17
|
min = Float::MAX
|
14
18
|
max = -Float::MAX
|
15
19
|
(0..x_values.size-1).each do |i|
|
@@ -40,7 +44,11 @@ module RubyPlot
|
|
40
44
|
plot_points(path, title, x_lable, y_lable, names, x_values, y_values, log, x_range, y_range, true, true, false, false, false)
|
41
45
|
end
|
42
46
|
|
43
|
-
def self.
|
47
|
+
def self.confidence_plot(path, title, x_lable, y_lable, names, x_values, y_values, y_range=nil)
|
48
|
+
|
49
|
+
LOGGER.debug "plot conf -- names "+names.inspect
|
50
|
+
LOGGER.debug "plot conf -- x "+x_values.inspect
|
51
|
+
LOGGER.debug "plot conf -- y "+y_values.inspect
|
44
52
|
|
45
53
|
min = Float::MAX
|
46
54
|
max = -Float::MAX
|
@@ -51,18 +59,24 @@ module RubyPlot
|
|
51
59
|
border = (max-min)*0.1
|
52
60
|
min_border = min-border
|
53
61
|
max_border = max+border
|
54
|
-
|
55
|
-
|
56
|
-
|
62
|
+
|
63
|
+
if (y_range==nil) # use own computed range only if not explicitly definded...
|
64
|
+
y_range = min==max ? nil : [min_border, max_border]
|
65
|
+
elsif (y_range[0] > max_border ) #.. or if values out of scope
|
66
|
+
y_range[0] = min_border
|
67
|
+
elsif (y_range[1] < min_border )
|
68
|
+
y_range[1] = max_border
|
69
|
+
end
|
70
|
+
plot_points(path, title, x_lable, y_lable, names, x_values, y_values, false, nil, y_range, false, false, true, true, false)
|
57
71
|
end
|
58
72
|
|
59
73
|
def self.plot_points(path, title, x_lable, y_lable, names, x_values, y_values,
|
60
74
|
log=true, x_range=nil, y_range=nil, quadratic_scale=true, draw_diagonale=true, line_points=false, reverse_x=false, reverse_y=false)
|
61
75
|
|
62
|
-
LOGGER.debug "
|
63
|
-
LOGGER.debug "
|
64
|
-
LOGGER.debug "
|
65
|
-
LOGGER.debug "
|
76
|
+
LOGGER.debug "plot points -- names "+names.inspect
|
77
|
+
LOGGER.debug "plot points -- x "+x_values.inspect
|
78
|
+
LOGGER.debug "plot points -- y "+y_values.inspect
|
79
|
+
LOGGER.debug "plot points -- y_range "+y_range.inspect
|
66
80
|
|
67
81
|
data = []
|
68
82
|
(0..x_values.size-1).each do |i|
|
@@ -77,7 +91,7 @@ module RubyPlot
|
|
77
91
|
# -----------------------------------------------------
|
78
92
|
# check parameters
|
79
93
|
status=false
|
80
|
-
LOGGER.debug "#{names.length} algs entered"
|
94
|
+
#LOGGER.debug "#{names.length} algs entered"
|
81
95
|
|
82
96
|
#LOGGER.debug names.inspect
|
83
97
|
#LOGGER.debug data.inspect
|
@@ -94,17 +108,12 @@ module RubyPlot
|
|
94
108
|
|
95
109
|
# gnuplot check
|
96
110
|
gnuplot=`which gnuplot | grep -o gnuplot`
|
97
|
-
if gnuplot
|
98
|
-
LOGGER.debug "Gnuplot is already installed."
|
99
|
-
else
|
111
|
+
if gnuplot != "gnuplot\n"
|
100
112
|
raise "Please install gnuplot.\n"+
|
101
113
|
"sudo apt-get install gnuplot"
|
102
114
|
end
|
103
|
-
|
104
|
-
dat_number=0
|
105
|
-
|
106
115
|
output_dat_arr = Array.new
|
107
|
-
|
116
|
+
tmp_datasets = []
|
108
117
|
|
109
118
|
# -----------------------------------------------------
|
110
119
|
# create *.dat files of imported data for gnuplot
|
@@ -134,16 +143,17 @@ module RubyPlot
|
|
134
143
|
#write *.dat files
|
135
144
|
#-----------------------------------------------------
|
136
145
|
#write output_dat_arr content in new *.dat file
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
146
|
+
|
147
|
+
tmp_file = Tempfile.new("data#{i}.dat")
|
148
|
+
tmp_datasets << tmp_file
|
149
|
+
tmp_file.puts output_dat_arr
|
150
|
+
tmp_file.close
|
141
151
|
output_dat_arr.clear
|
142
|
-
|
143
152
|
else
|
144
153
|
raise "Data pair of #{names[i]} have no the same number of elements."
|
145
154
|
end
|
146
155
|
end
|
156
|
+
LOGGER.debug "plot points -- datasets "+tmp_datasets.collect{|d| d.path}.inspect
|
147
157
|
|
148
158
|
# -----------------------------------------------------
|
149
159
|
# create *.plt file for gnuplot
|
@@ -203,28 +213,38 @@ module RubyPlot
|
|
203
213
|
i = 0
|
204
214
|
for i in 0..names.length-1
|
205
215
|
if i == names.length-1
|
206
|
-
output_plt_arr.push " '
|
216
|
+
output_plt_arr.push " '"+tmp_datasets[i].path+"' using 2:1 title '#{names[i]}' with "+style.to_s
|
207
217
|
else
|
208
|
-
output_plt_arr.push " '
|
218
|
+
output_plt_arr.push " '"+tmp_datasets[i].path+"' using 2:1 title '#{names[i]}' with "+style.to_s+", \\"
|
209
219
|
end
|
220
|
+
|
221
|
+
#output_plt_arr.push " '"+tmp_datasets[i].path+"' using 2:1 title '#{names[i]}' with "+style.to_s
|
222
|
+
#output_plt_arr[-1] = output_plt_arr[-1]+", \\" if names.size==1 or i<names.length-1
|
223
|
+
#
|
224
|
+
#if names.size==1
|
225
|
+
# output_plt_arr.push " '"+tmp_datasets[i].path+"' using 2:1 smooth bezier notitle with lines"
|
226
|
+
# output_plt_arr[-1] = output_plt_arr[-1]+", \\" if i<names.length-1
|
227
|
+
#end
|
210
228
|
end
|
211
229
|
output_plt_arr.push ""
|
212
230
|
output_plt_arr.push ""
|
213
|
-
|
214
|
-
|
231
|
+
|
232
|
+
#puts output_plt_arr.join("\n")
|
233
|
+
|
215
234
|
#output_plt_arr << "plot f(x)"
|
216
235
|
|
217
236
|
# -----------------------------------------------------
|
218
237
|
# write *.plt files
|
219
238
|
# -----------------------------------------------------
|
220
239
|
# write output_dat_arr content in new *.dat file
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
240
|
+
tmp_file = Tempfile.new("config.plt")
|
241
|
+
tmp_datasets << tmp_file
|
242
|
+
tmp_file.puts output_plt_arr
|
243
|
+
tmp_file.close
|
225
244
|
|
226
245
|
# start gnuplot with created *.plt file
|
227
|
-
cmd = "gnuplot
|
246
|
+
cmd = "gnuplot "+tmp_file.path+" 2>&1"
|
247
|
+
LOGGER.debug "plot points -- running gnuplot '"+cmd+"'"
|
228
248
|
response = ""
|
229
249
|
IO.popen(cmd) do |f|
|
230
250
|
while line = f.gets
|
@@ -232,28 +252,34 @@ module RubyPlot
|
|
232
252
|
end
|
233
253
|
end
|
234
254
|
raise "gnuplot failes (cmd: "+cmd.to_s+", out: "+response.to_s+")" unless $?==0
|
235
|
-
|
236
|
-
LOGGER.debug "#{path} created. "
|
255
|
+
LOGGER.info "plot points -- RESULT: #{path}"
|
237
256
|
|
238
257
|
# -----------------------------------------------------
|
239
258
|
# remove *.plt and *.dat files
|
240
259
|
# -----------------------------------------------------
|
241
|
-
|
242
|
-
LOGGER.debug "config.plt removed."
|
243
|
-
for i in 0..names.length-1
|
244
|
-
`rm data#{i}.dat`
|
245
|
-
LOGGER.debug "data#{i}.dat removed."
|
246
|
-
end
|
260
|
+
tmp_datasets.each{|f| f.delete}
|
247
261
|
end
|
248
262
|
|
249
263
|
def self.test_plot_points
|
250
|
-
regression_point_plot("/tmp/regression.png" , "name of title", "x-values", "y-values", ["this-one-has-a-very-very-very-long-name", "test" ],
|
251
|
-
[[0.20,0.60,0.80,0.20,1.0,0.001], [0.10,0.25,0.70,0.95,0.2,0.3434]],
|
252
|
-
[[0.15,0.50,0.90,0.2,9,0.5],[0.20,0.40,0.50,0.70,0.3,0.234589]])
|
253
|
-
|
254
|
-
|
255
|
-
[[
|
256
|
-
|
264
|
+
# regression_point_plot("/tmp/regression.png" , "name of title", "x-values", "y-values", ["this-one-has-a-very-very-very-long-name", "test" ],
|
265
|
+
# [[0.20,0.60,0.80,0.20,1.0,0.001], [0.10,0.25,0.70,0.95,0.2,0.3434]],
|
266
|
+
# [[0.15,0.50,0.90,0.2,9,0.5],[0.20,0.40,0.50,0.70,0.3,0.234589]])
|
267
|
+
# accuracy_confidence_plot("/tmp/accuracy-conf.png" , "name of title", "x-values", "y-values", ["test" ],
|
268
|
+
# [[0.9,0.5,0.3,0.1]],
|
269
|
+
# [[100,90,70,30]])
|
270
|
+
|
271
|
+
x = []
|
272
|
+
y = []
|
273
|
+
noise = 0
|
274
|
+
100.times do |i|
|
275
|
+
i += 1
|
276
|
+
noise += rand**2 * (rand<0.5 ? 1 : -1)
|
277
|
+
x << i
|
278
|
+
y << 1/i + noise
|
279
|
+
end
|
280
|
+
confidence_plot("/tmp/test-plot.svg" , "name of title", "x-values", "y-values", ["test"],
|
281
|
+
[x],
|
282
|
+
[y])
|
257
283
|
end
|
258
284
|
|
259
285
|
private
|
data/lib/ruby-plot.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'logger'
|
3
3
|
require 'gnuplot'
|
4
|
+
require 'tempfile'
|
4
5
|
|
5
6
|
unless(defined? LOGGER)
|
6
7
|
LOGGER = Logger.new(STDOUT)
|
@@ -10,7 +11,9 @@ end
|
|
10
11
|
require "plot_bars.rb"
|
11
12
|
require "plot_lines.rb"
|
12
13
|
require "plot_points.rb"
|
14
|
+
require "plot_box.rb"
|
13
15
|
|
14
16
|
#RubyPlot::test_plot_lines
|
15
17
|
#RubyPlot::test_plot_bars
|
16
18
|
#RubyPlot::test_plot_points
|
19
|
+
#RubyPlot::test_plot_box
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-plot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 6
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.6.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Vorgrimmler
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-11-25 00:00:00 +01:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- Rakefile
|
47
47
|
- VERSION
|
48
48
|
- lib/plot_bars.rb
|
49
|
+
- lib/plot_box.rb
|
49
50
|
- lib/plot_lines.rb
|
50
51
|
- lib/plot_points.rb
|
51
52
|
- lib/ruby-plot.rb
|