grada 2.0.3 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/grada.rb +47 -7
  2. metadata +1 -1
data/lib/grada.rb CHANGED
@@ -24,7 +24,16 @@ class Grada
24
24
  with: 'lines',
25
25
  graph_type: :default}
26
26
 
27
+ #All styles you can specify for the plots
28
+ #
27
29
  STYLES = [:linestyle, :linetype, :linewidth, :linecolor, :pointtype, :pointsize, :fill]
30
+
31
+ #Graph offsets
32
+ #
33
+ LEFT = 0.25
34
+ RIGHT = 0.25
35
+ TOP = 0.25
36
+ BOTTOM = 0.25
28
37
 
29
38
  # Hello GraDA
30
39
  #
@@ -78,17 +87,21 @@ class Grada
78
87
 
79
88
  plot_histogram do |plot|
80
89
  plot.set "terminal x11 size #{@opts[:width]},#{@opts[:height]}"
90
+ plot.set "offset graph #{LEFT},#{RIGHT},#{TOP},#{BOTTOM}"
81
91
  end
82
92
  elsif @opts[:graph_type] == :heatmap
83
93
  Matrix.columns(@x) rescue raise NoPlotDataError
84
94
  @opts[:with] = 'image'
85
95
 
86
- plot_heat_map
96
+ plot_heat_map do |plot|
97
+ plot.set "offset graph #{LEFT},#{RIGHT},#{TOP},#{BOTTOM}"
98
+ end
87
99
  else
88
100
  raise NoPlotDataError if @y.nil?
89
101
 
90
102
  plot_and do |plot|
91
103
  plot.set "terminal x11 size #{@opts[:width]},#{@opts[:height]}"
104
+ plot.set "offset graph #{LEFT},#{RIGHT},#{TOP},#{BOTTOM}"
92
105
  end
93
106
  end
94
107
  end
@@ -114,6 +127,7 @@ class Grada
114
127
  plot.output @opts[:filename]
115
128
  plot.set "terminal png size #{@opts[:width]}, #{@opts[:height]} crop"
116
129
  plot.terminal 'png'
130
+ plot.set "offset graph #{LEFT},#{RIGHT},#{TOP},#{BOTTOM}"
117
131
  end
118
132
  elsif @opts[:graph_type] == :heatmap
119
133
  Matrix.columns(@x) rescue raise NoPlotDataError
@@ -123,6 +137,7 @@ class Grada
123
137
  plot.output @opts[:filename]
124
138
  plot.set "terminal png size #{@opts[:width]}, #{@opts[:height]} crop"
125
139
  plot.terminal 'png'
140
+ plot.set "offset graph #{LEFT},#{RIGHT},#{TOP},#{BOTTOM}"
126
141
  end
127
142
  else
128
143
  raise NoPlotDataError if @y.nil?
@@ -131,6 +146,7 @@ class Grada
131
146
  plot.output @opts[:filename]
132
147
  plot.set "terminal png size #{@opts[:width]}, #{@opts[:height]} crop"
133
148
  plot.terminal 'png'
149
+ plot.set "offset graph #{LEFT},#{RIGHT},#{TOP},#{BOTTOM}"
134
150
  end
135
151
  end
136
152
  end
@@ -199,8 +215,16 @@ class Grada
199
215
  else
200
216
  raise NoPlotDataError if ! @y.nil? && @x.size != @y.size
201
217
 
218
+ style = Gnuplot::Style.new do |ds|
219
+ ds.index = index
220
+ STYLES.each do |style|
221
+ ds.send("#{style}=", dic[style]) if dic[style]
222
+ end
223
+ end.to_s
224
+
202
225
  plot.data << Gnuplot::DataSet.new([@x,@y]) do |ds|
203
226
  ds.with = @opts[:with]
227
+ ds.with += style
204
228
  end
205
229
  end
206
230
  end
@@ -211,17 +235,33 @@ class Grada
211
235
  Gnuplot.open do |gp|
212
236
  Gnuplot::Plot.new(gp) do |plot|
213
237
  block[plot] if block
238
+
239
+ width = ( @x.max - @x.min ) / @x.size
214
240
 
215
241
  plot.title @opts[:title]
216
242
 
217
243
  plot.set "style data histogram"
218
244
  plot.xlabel @opts[:x_label]
219
- plot.ylabel "Frecuency"
220
-
221
- x = @x.sort.group_by { |xi| xi }.map{|k,v| v.count }
222
-
223
- plot.data << Gnuplot::DataSet.new(x) do |ds|
224
- ds.with = @opts[:with]
245
+ plot.ylabel "Frequency"
246
+ plot.set "style fill solid 0.5"
247
+ plot.set "xrange [#{@x.min}:#{@x.max}]"
248
+ plot.set "boxwidth #{ width * 0.4}"
249
+ plot.set "xtics #{@x.min},#{(@x.max-@x.min)/5},#{@x.max}"
250
+ plot.set "tics out nomirror"
251
+
252
+ style = Gnuplot::Style.new do |ds|
253
+ ds.index = index
254
+ STYLES.each do |style|
255
+ ds.send("#{style}=", dic[style]) if dic[style]
256
+ end
257
+ end.to_s
258
+
259
+ plot.data << Gnuplot::DataSet.new(@x) do |ds|
260
+ ds.with = 'boxes'
261
+ ds.with += style
262
+ ds.title = @opts[:x_label]
263
+ ds.using = '($1):(1.0)'
264
+ ds.smooth = 'freq'
225
265
  end
226
266
  end
227
267
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grada
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: