gnutemplate 0.2.0.2 → 0.2.1
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.
- checksums.yaml +4 -4
- data/lib/gnutemplate/version.rb +1 -1
- data/lib/gnutemplate.rb +240 -226
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8702141a60cf55e1469b1dc3c614c61ae4e186b82528499b68539f8d26e5e99
|
4
|
+
data.tar.gz: d9e37d34538eff71b66ee6606792dc97a4a6b1af3d8f6f5c23ad156b4651a61c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee061e613587ab79811aaf9b3aa44841c4073963b0da073791e944696d0a582cba3ff4f985a7dea3d44ddd40e274f6d7b7b87dab1839da1192ddbb11cda9f742
|
7
|
+
data.tar.gz: 4a70f90c8c570cf6ba0bcb3bae0a85701feaab3b3dc829c0edf00c5758c4c15aea55f788df0e77ba4b9caa0e89c5d7e45cf109f5ba72cc831e8098b03e079aae
|
data/lib/gnutemplate/version.rb
CHANGED
data/lib/gnutemplate.rb
CHANGED
@@ -31,6 +31,24 @@ end
|
|
31
31
|
module Gnutemplate
|
32
32
|
class Error < StandardError; end
|
33
33
|
|
34
|
+
|
35
|
+
# settingはむずい
|
36
|
+
# ・全体はハッシュ
|
37
|
+
# ・基本は次のような指定
|
38
|
+
# settings[:style] = "fill solid"
|
39
|
+
# ・ハッシュを使う場合も。以下は、set :xtic, :rotate, by: rotate_xtics, scale: 0の表現怜
|
40
|
+
# settings[:xtic] = {rotate: nil, by: rotate_xtics, scale: 0}
|
41
|
+
# ・同じキー(例えばxtics)に複数指定たいときはリストにして渡す
|
42
|
+
# settings[:xtics] = ["#{xmin-xticinterval}, #{xticinterval}, #{xmax+xticinterval}" ,
|
43
|
+
# "rotate by #{rotate_xtics}"]
|
44
|
+
# ・リストの中を更にハッシュにすることも可能
|
45
|
+
# settings[:style] = [{data: nil, histogram: nil}, # set :style, :data, :histogram を表現
|
46
|
+
# {histogram: nil, cluster: nil, gap: 1}, # set :histogram, :cluster, gap: 1 を表現
|
47
|
+
# {fill: nil, solid: 1.0 - (alpha/100.0), border: -1}]
|
48
|
+
|
49
|
+
|
50
|
+
SubPlot = Struct.new(:args, :settings)
|
51
|
+
|
34
52
|
def note_line(data)
|
35
53
|
Numo.noteplot do
|
36
54
|
set xtics: xtics
|
@@ -104,42 +122,40 @@ module Gnutemplate
|
|
104
122
|
# 列データをmin, maxごとに分離する
|
105
123
|
rows_min = (0...(rows.length)).to_a.map {|i| rows[i] if i % 2 == 0}.compact
|
106
124
|
rows_max = (0...(rows.length)).to_a.map {|i| rows[i] if i % 2 == 1}.compact
|
107
|
-
|
108
|
-
Numo.gnuplot do
|
109
|
-
if !file.nil?
|
110
|
-
set terminal: "gif"
|
111
|
-
set output: file
|
112
|
-
end
|
113
125
|
|
114
|
-
|
115
|
-
|
116
|
-
set :xtics, "rotate by 90"
|
117
|
-
end
|
118
|
-
|
119
|
-
xrange ||= (rows_min.map(&:to_a).flatten.compact.min)..(rows_max.map(&:to_a).flatten.compact.max)
|
120
|
-
set xrange: xrange
|
121
|
-
set :grid
|
122
|
-
set style: :fill_solid
|
123
|
-
set title: title if title
|
124
|
-
|
125
|
-
### キャンドルスティックを応用する
|
126
|
-
# X軸, 太い所の最大値, 最大値, 最小値, 太い所の最小値
|
127
|
-
# 今回は細い箇所は不要
|
128
|
-
# X軸はこの場合配列にしなきゃだめ(to_a) これは癖をつけたほうが安全
|
126
|
+
settings = {}
|
127
|
+
args = []
|
129
128
|
|
130
|
-
|
131
|
-
|
132
|
-
|
129
|
+
if !xtics.nil?
|
130
|
+
set[:xtics] = [xtics]
|
131
|
+
set[:xtics].push "rotate by 90"
|
132
|
+
end
|
133
133
|
|
134
|
-
|
134
|
+
xrange ||= (rows_min.map(&:to_a).flatten.compact.min)..(rows_max.map(&:to_a).flatten.compact.max)
|
135
|
+
|
136
|
+
set[:xrange] = xrange
|
137
|
+
set[:grid] = nil
|
138
|
+
set[:style] = :fill_solid
|
139
|
+
set[:title] = title if title
|
140
|
+
|
141
|
+
### キャンドルスティックを応用する
|
142
|
+
# X軸, 太い所の最大値, 最大値, 最小値, 太い所の最小値
|
143
|
+
# 今回は細い箇所は不要
|
144
|
+
# X軸はこの場合配列にしなきゃだめ(to_a) これは癖をつけたほうが安全
|
145
|
+
|
146
|
+
args = rows_min.zip(rows_max, titlenames).each.with_index.inject([]) do |result, ((mi, ma, t), i)|
|
147
|
+
result += [xrange.to_a, mi.to_a, mi.to_a, ma.to_a, ma.to_a, {with: "candlesticks", fc_rgb: colors[i % 4], title: t} ]
|
135
148
|
end
|
149
|
+
|
150
|
+
plot *args
|
151
|
+
|
136
152
|
end
|
137
153
|
|
138
|
-
#
|
154
|
+
# ここからsettings, argsを返せるようにする
|
139
155
|
# set terminal部の扱いは考えなければならない(多分、_drow, _noteにif...set...end だけ残せばいい)
|
140
156
|
def histogram(data, labels: nil, pileup: true,
|
141
157
|
xmin: nil, xmax: nil, ymin: 0, ymax: nil, bins: 10,
|
142
|
-
|
158
|
+
plotsize: nil, rotate_xtics: 45,
|
143
159
|
fill: true, alpha: 33, background: nil,
|
144
160
|
file: nil)
|
145
161
|
|
@@ -154,21 +170,24 @@ module Gnutemplate
|
|
154
170
|
ymax ||= freqs.map{ _1[1] }.flatten.max * 1.1
|
155
171
|
|
156
172
|
if pileup
|
157
|
-
###########
|
158
|
-
###
|
159
|
-
###########
|
160
|
-
|
161
|
-
set size: "#{figsize},#{figsize}"
|
162
|
-
set style: "fill solid" if fill
|
163
173
|
|
164
174
|
xticinterval = (xmax-xmin).to_f / bins
|
165
|
-
set xtics: "#{xmin-xticinterval}, #{xticinterval}, #{xmax+xticinterval}"
|
166
|
-
set(:xtics, "rotate by #{rotate_xtics}") if rotate_xtics
|
167
175
|
|
168
|
-
|
169
|
-
|
176
|
+
settings = {}
|
177
|
+
settings[:size] = "#{plotsize[0]},#{plotsize[1]}" if plotsize
|
178
|
+
settings[:style] = "fill solid" if fill
|
170
179
|
|
171
|
-
|
180
|
+
settings[:xtics] = ["#{xmin-xticinterval}, #{xticinterval}, #{xmax+xticinterval}"]
|
181
|
+
settings[:xtics].push("rotate by #{rotate_xtics}") if rotate_xtics
|
182
|
+
|
183
|
+
settings[:xrange] = (xmin-xticinterval)..(xmax+xticinterval)
|
184
|
+
settings[:yrange] = ymin..ymax
|
185
|
+
|
186
|
+
args = if background
|
187
|
+
["[#{xmin}:#{xmax}] #{ymax} with filledc above y=#{ymin} fc \"##{background}\" notitle", {}]
|
188
|
+
else
|
189
|
+
[]
|
190
|
+
end
|
172
191
|
|
173
192
|
freqs.each_with_index do |f, i|
|
174
193
|
args.push f[0], f[1]
|
@@ -180,29 +199,27 @@ module Gnutemplate
|
|
180
199
|
end
|
181
200
|
end
|
182
201
|
|
183
|
-
return args
|
202
|
+
return SubPlot.new(args, settings)
|
184
203
|
|
185
204
|
else
|
186
205
|
|
187
|
-
###########
|
188
|
-
###
|
189
|
-
###########
|
190
206
|
# set title:"Temperature"
|
191
|
-
|
192
|
-
|
193
|
-
set :style, :
|
194
|
-
|
195
|
-
|
196
|
-
|
207
|
+
settings = {}
|
208
|
+
settings[:auto] = "x"
|
209
|
+
settings[:style] = [{data: nil, histogram: nil}, # set :style, :data, :histogram を表現
|
210
|
+
{histogram: nil, cluster: nil, gap: 1}, # set :histogram, :cluster, gap: 1 を表現
|
211
|
+
{fill: nil, solid: 1.0 - (alpha/100.0), border: -1}]
|
212
|
+
settings[:boxwidth] = 0.9
|
213
|
+
settings[:xtic] = {rotate: nil, by: rotate_xtics, scale: 0}
|
197
214
|
|
198
215
|
xticinterval = (xmax-xmin).to_f / bins
|
199
|
-
|
216
|
+
settings[:xrange] = 0..((xmax-xmin) / xticinterval).to_i
|
200
217
|
|
201
218
|
xtics = freqs[0][0]
|
202
219
|
.each.with_index
|
203
220
|
.inject("(") { |result, (x, i)| result += "'#{x-xticinterval/2}-#{x+xticinterval/2}' #{i}," }
|
204
221
|
.gsub(/,$/, ")")
|
205
|
-
|
222
|
+
settings[:xtics] = xtics
|
206
223
|
|
207
224
|
labels ||= (0...(freqs.length)).map(&:to_s)
|
208
225
|
|
@@ -210,200 +227,197 @@ module Gnutemplate
|
|
210
227
|
[*f, using: 2, w: :histogram, t: labels[i], fillcolor: "rgb \"#{colors[i % 4]}\""]
|
211
228
|
end
|
212
229
|
|
213
|
-
return args
|
230
|
+
return SubPlot.new(args, settings)
|
214
231
|
|
215
232
|
end # Of if pileup..else
|
216
233
|
end
|
217
|
-
module_function :histogram
|
218
234
|
|
219
235
|
def note_histogram(data, labels: nil, pileup: true,
|
220
236
|
xmin: nil, xmax: nil, ymin: 0, ymax: nil, bins: 10,
|
221
|
-
|
237
|
+
plotsize: nil, rotate_xtics: 45,
|
222
238
|
fill: true, alpha: 33, background: nil,
|
223
239
|
file: nil)
|
224
240
|
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
args = histogram(data, labels: labels, pileup: pileup,
|
233
|
-
xmin: xmin, xmax: xmax, ymin: ymin, ymax: ymax, bins: bins,
|
234
|
-
figsize: figsize, rotate_xtics: rotate_xtics,
|
235
|
-
fill: fill, alpha: alpha, background: background)
|
236
|
-
|
237
|
-
plot *args
|
238
|
-
|
239
|
-
# data = [data] if data[0].kind_of?(Numeric) || data[0].nil?
|
240
|
-
|
241
|
-
# alpha_hex = (alpha * 256 / 100).to_s(16).upcase
|
242
|
-
# colors = ["##{alpha_hex}CC0000", "##{alpha_hex}00CC00", "##{alpha_hex}0000CC", "##{alpha_hex}888800"]
|
243
|
-
|
244
|
-
# xmax ||= data.map(&:to_a).flatten.compact.max
|
245
|
-
# xmin ||= data.map(&:to_a).flatten.compact.min
|
246
|
-
# freqs = data.map {|d| d.to_a.compact.histogram(bins, min: xmin, max: xmax) }
|
247
|
-
# ymax ||= freqs.map{ _1[1] }.flatten.max * 1.1
|
248
|
-
|
249
|
-
|
250
|
-
# if pileup
|
251
|
-
# ###########
|
252
|
-
# ###
|
253
|
-
# ###########
|
254
|
-
|
255
|
-
# set size: "#{figsize},#{figsize}"
|
256
|
-
# set style: "fill solid" if fill
|
257
|
-
|
258
|
-
# xticinterval = (xmax-xmin).to_f / bins
|
259
|
-
# set xtics: "#{xmin-xticinterval}, #{xticinterval}, #{xmax+xticinterval}"
|
260
|
-
# set(:xtics, "rotate by #{rotate_xtics}") if rotate_xtics
|
261
|
-
|
262
|
-
# set xrange: (xmin-xticinterval)..(xmax+xticinterval)
|
263
|
-
# set yrange: ymin..ymax
|
264
|
-
|
265
|
-
# args = background ? ["[#{xmin}:#{xmax}] #{ymax} with filledc above y=#{ymin} fc \"##{background}\" notitle", {}] : []
|
266
|
-
|
267
|
-
# freqs.each_with_index do |f, i|
|
268
|
-
# args.push f[0], f[1]
|
269
|
-
|
270
|
-
# if labels
|
271
|
-
# args.push({:with => :boxes, :title => labels[i], :fillcolor => "rgb \"#{colors[i % 4]}\""})
|
272
|
-
# else
|
273
|
-
# args.push({:with => :boxes, :fillcolor => "rgb \"#{colors[i % 4]}\""})
|
274
|
-
# end
|
275
|
-
# end
|
276
|
-
|
277
|
-
# plot *args
|
278
|
-
|
279
|
-
# else
|
280
|
-
|
281
|
-
# ###########
|
282
|
-
# ###
|
283
|
-
# ###########
|
284
|
-
# # set title:"Temperature"
|
285
|
-
# set auto:"x"
|
286
|
-
# set :style, :data, :histogram
|
287
|
-
# set :style, :histogram, :cluster, gap:1
|
288
|
-
# set :style, :fill, solid: 1.0 - (alpha/100.0), border:-1
|
289
|
-
# set boxwidth:0.9
|
290
|
-
# set :xtic, :rotate, by: rotate_xtics, scale: 0
|
291
|
-
|
292
|
-
# xticinterval = (xmax-xmin).to_f / bins
|
293
|
-
# set xrange: 0..((xmax-xmin) / xticinterval).to_i
|
294
|
-
|
295
|
-
# xtics = freqs[0][0]
|
296
|
-
# .each.with_index
|
297
|
-
# .inject("(") { |result, (x, i)| result += "'#{x-xticinterval/2}-#{x+xticinterval/2}' #{i}," }
|
298
|
-
# .gsub(/,$/, ")")
|
299
|
-
# set xtics: xtics
|
300
|
-
|
301
|
-
# labels ||= (0...(freqs.length)).map(&:to_s)
|
302
|
-
|
303
|
-
# args = freqs.zip(labels).each_with_index.map do |(f, l), i|
|
304
|
-
# [*f, using: 2, w: :histogram, t: labels[i], fillcolor: "rgb \"#{colors[i % 4]}\""]
|
305
|
-
# end
|
306
|
-
|
307
|
-
# plot *args
|
308
|
-
|
309
|
-
# end # Of if pileup..else
|
310
|
-
|
311
|
-
end # Of Numo.noteplot do
|
312
|
-
|
241
|
+
as = Gnutemplate.histogram(data, labels: labels, pileup: pileup,
|
242
|
+
xmin: xmin, xmax: xmax, ymin: ymin, ymax: ymax, bins: bins,
|
243
|
+
plotsize: plotsize, rotate_xtics: rotate_xtics,
|
244
|
+
fill: fill, alpha: alpha, background: background)
|
245
|
+
|
246
|
+
note as, file: file
|
247
|
+
|
313
248
|
end # Of def function
|
314
249
|
|
315
250
|
def draw_histogram(data, labels: nil, pileup: true,
|
316
251
|
xmin: nil, xmax: nil, ymin: 0, ymax: nil, bins: 10,
|
317
|
-
|
252
|
+
plotsize: nil, rotate_xtics: 45,
|
318
253
|
fill: true, alpha: 33, background: nil,
|
319
254
|
file: nil)
|
320
255
|
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
args = histogram(data, labels: labels, pileup: pileup,
|
329
|
-
xmin: xmin, xmax: xmax, ymin: ymin, ymax: ymax, bins: bins,
|
330
|
-
figsize: figsize, rotate_xtics: rotate_xtics,
|
331
|
-
fill: fill, alpha: alpha, background: background)
|
332
|
-
|
333
|
-
plot *args
|
334
|
-
|
335
|
-
# data = [data] if data[0].kind_of?(Numeric) || data[0].nil?
|
256
|
+
as = Gnutemplate.histogram(data, labels: labels, pileup: pileup,
|
257
|
+
xmin: xmin, xmax: xmax, ymin: ymin, ymax: ymax, bins: bins,
|
258
|
+
plotsize: plotsize, rotate_xtics: rotate_xtics,
|
259
|
+
fill: fill, alpha: alpha, background: background)
|
260
|
+
|
261
|
+
draw as, file: file
|
336
262
|
|
337
|
-
|
338
|
-
# colors = ["##{alpha_hex}CC0000", "##{alpha_hex}00CC00", "##{alpha_hex}0000CC", "##{alpha_hex}888800"]
|
263
|
+
end # Of def function
|
339
264
|
|
340
|
-
# xmax ||= data.map(&:to_a).flatten.compact.max
|
341
|
-
# xmin ||= data.map(&:to_a).flatten.compact.min
|
342
|
-
# freqs = data.map {|d| d.to_a.compact.histogram(bins, min: xmin, max: xmax) }
|
343
|
-
# ymax ||= freqs.map{ _1[1] }.flatten.max * 1.1
|
344
|
-
|
345
|
-
# if pileup
|
346
|
-
# ###########
|
347
|
-
# ###
|
348
|
-
# ###########
|
349
|
-
|
350
|
-
# set size: "#{figsize},#{figsize}"
|
351
|
-
# set style: "fill solid" if fill
|
352
|
-
|
353
|
-
# xticinterval = (xmax-xmin).to_f / bins
|
354
|
-
# set xtics: "#{xmin-xticinterval}, #{xticinterval}, #{xmax+xticinterval}"
|
355
|
-
# set(:xtics, "rotate by #{rotate_xtics}") if rotate_xtics
|
356
|
-
|
357
|
-
# set xrange: (xmin-xticinterval)..(xmax+xticinterval)
|
358
|
-
# set yrange: ymin..ymax
|
359
|
-
|
360
|
-
# args = background ? ["[#{xmin}:#{xmax}] #{ymax} with filledc above y=#{ymin} fc \"##{background}\" notitle", {}] : []
|
361
265
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
266
|
+
def note(subplot, file: nil, campus_size: nil, multicolumn: 1) # for any plot function
|
267
|
+
|
268
|
+
subplot = [subplot] if !subplot.is_a?(Array)
|
269
|
+
|
270
|
+
Numo.noteplot do
|
271
|
+
|
272
|
+
if file
|
273
|
+
if campus_size
|
274
|
+
set termnal: "png", size: campus_size
|
275
|
+
else
|
276
|
+
set terminal: "png"
|
277
|
+
end
|
278
|
+
set output: file
|
279
|
+
end
|
280
|
+
|
281
|
+
# マルチプロット調整
|
282
|
+
multiline = (subplot.length.to_f / multicolumn).ceil
|
283
|
+
set :multiplot, layout: "#{multiline},#{multicolumn}"
|
284
|
+
|
285
|
+
# subplot一つ一つを描画
|
286
|
+
subplot.each do |sp|
|
287
|
+
|
288
|
+
# こういうのがパターンマッチでできるの?
|
289
|
+
sp.settings.each do |k, v|
|
290
|
+
if v.kind_of?(Hash)
|
291
|
+
sargs = []
|
292
|
+
skwargs = {}
|
293
|
+
|
294
|
+
v.map do |vk, vv|
|
295
|
+
if vv.nil?
|
296
|
+
sargs.push vk
|
297
|
+
else
|
298
|
+
skwargs[vk] = vv
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
set k, *sargs, **skwargs
|
303
|
+
|
304
|
+
elsif v.kind_of?(Array)
|
305
|
+
|
306
|
+
v.each do |vi|
|
307
|
+
if vi.kind_of?(Hash)
|
308
|
+
sargs = []
|
309
|
+
skwargs = {}
|
310
|
+
vi.map do |vk, vv|
|
311
|
+
if vv.nil?
|
312
|
+
sargs.push vk
|
313
|
+
else
|
314
|
+
skwargs[vk] = vv
|
315
|
+
end
|
316
|
+
end
|
317
|
+
set k, *sargs, **skwargs
|
318
|
+
else
|
319
|
+
set k, vi
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
else
|
324
|
+
|
325
|
+
if v.nil?
|
326
|
+
set k
|
327
|
+
else
|
328
|
+
set k, v
|
329
|
+
end
|
330
|
+
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
334
|
+
plot *(sp.args)
|
335
|
+
end # of subplot.each
|
336
|
+
|
337
|
+
unset :multiplot
|
338
|
+
|
339
|
+
end # of Numo.noteplot
|
340
|
+
end # of def draw
|
341
|
+
|
342
|
+
def draw(subplot, settings, campus_size: nil, file: nil, multicolumn: 1) # for any plot function
|
343
|
+
|
344
|
+
subplot = [subplot] if !subplot.is_a?(Array)
|
345
|
+
|
346
|
+
Numo.gnuplot do
|
347
|
+
|
348
|
+
if file
|
349
|
+
if campus_size
|
350
|
+
set termnal: "png", size: campus_size
|
351
|
+
else
|
352
|
+
set terminal: "png"
|
353
|
+
end
|
354
|
+
set output: file
|
355
|
+
end
|
356
|
+
|
357
|
+
multiline = (subplot.length.to_f / multicolumn).ceil
|
358
|
+
set :multiplot, layout: "#{multiline},#{multicolumn}"
|
359
|
+
|
360
|
+
subplot.each do |sp|
|
361
|
+
|
362
|
+
# こういうのがパターンマッチでできるの?
|
363
|
+
sp.settings.each do |k, v|
|
364
|
+
if v.kind_of?(Hash)
|
365
|
+
sargs = []
|
366
|
+
skwargs = {}
|
367
|
+
|
368
|
+
v.map do |vk, vv|
|
369
|
+
if vv.nil?
|
370
|
+
sargs.push vk
|
371
|
+
else
|
372
|
+
skwargs[vk] = vv
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
376
|
+
set k, *sargs, **skwargs
|
377
|
+
|
378
|
+
elsif v.kind_of?(Array)
|
379
|
+
|
380
|
+
v.each do |vi|
|
381
|
+
if vi.kind_of?(Hash)
|
382
|
+
sargs = []
|
383
|
+
skwargs = {}
|
384
|
+
vi.map do |vk, vv|
|
385
|
+
if vv.nil?
|
386
|
+
sargs.push vk
|
387
|
+
else
|
388
|
+
skwargs[vk] = vv
|
389
|
+
end
|
390
|
+
end
|
391
|
+
set k, *sargs, **skwargs
|
392
|
+
else
|
393
|
+
set k, vi
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
397
|
+
else
|
398
|
+
|
399
|
+
if v.nil?
|
400
|
+
set k
|
401
|
+
else
|
402
|
+
set k, v
|
403
|
+
end
|
404
|
+
|
405
|
+
end
|
406
|
+
end
|
407
|
+
|
408
|
+
plot *(sp.args)
|
409
|
+
|
410
|
+
end # of subplot.each
|
411
|
+
|
412
|
+
unset :multiplot
|
413
|
+
|
414
|
+
end # of Numo.gnuplot
|
415
|
+
end # of def draw
|
416
|
+
|
417
|
+
module_function :histogram
|
418
|
+
module_function :note_line, :draw_line
|
419
|
+
module_function :note_box, :draw_box
|
420
|
+
module_function :note_histogram, :draw_histogram
|
421
|
+
module_function :note, :draw
|
407
422
|
|
408
|
-
module_function :note_line, :draw_line, :note_box, :draw_box, :note_histogram, :draw_histogram
|
409
423
|
end # Of module
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnutemplate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- showata
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-gnuplot
|