rubyplb 0.2.6 → 0.2.7
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.
- data/VERSION +1 -1
- data/bin/rubyplb +6 -2
- data/lib/rubyplb.rb +42 -30
- data/rubyplb.gemspec +1 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.7
|
data/bin/rubyplb
CHANGED
@@ -28,10 +28,14 @@ EOS
|
|
28
28
|
opt :simple, "Use simple labels for pattern nodes", :default=> false
|
29
29
|
opt :full, "Generate a full pattern lattice without contracting nodes", :default=> false
|
30
30
|
opt :vertical, "Draw the graph from top to bottom instead of left to right)", :default => false
|
31
|
-
opt :coloring, "Color pattern nodes", :default =>
|
31
|
+
opt :coloring, "Color pattern nodes [0 = none (default), 1 = cool/warm, 2 = monochrome]", :default => 0
|
32
32
|
opt :straight, "Straighten edges (available when output format is either png, jpg, or eps)", :default => false
|
33
|
+
opt :nodesep, "Size of separation between sister nodes (from 0.1 to 5.0)", :default => 0.8
|
34
|
+
opt :ranksep, "Size of separation between ranks (from 0.1 to 5.0)", :default => 0.8
|
33
35
|
end
|
34
|
-
|
36
|
+
Trollop::die :coloring, "must be 0, 1, or 2" if (opts[:coloring] > 2 || opts[:coloring] < 0)
|
37
|
+
Trollop::die :ranksep, "must be within 0.1 - 5.0" if (opts[:ranksep] < 0.1 || opts[:ranksep] > 5.0)
|
38
|
+
Trollop::die :nodesep, "must be within 0.1 - 5.0" if (opts[:nodesep] < 0.1 || opts[:nodesep] > 5.0)
|
35
39
|
############### main program ###############
|
36
40
|
|
37
41
|
if ARGV.size != 2
|
data/lib/rubyplb.rb
CHANGED
@@ -223,7 +223,7 @@ class PatLattice
|
|
223
223
|
end
|
224
224
|
|
225
225
|
def create_nodelabel(node)
|
226
|
-
if (@opts[:coloring] || !@opts[:simple])
|
226
|
+
if (@opts[:coloring] != 0 || !@opts[:simple])
|
227
227
|
if node.level != 0 and node.children_instances > 0
|
228
228
|
ldata = @level_data[node.level]
|
229
229
|
dev = node.children_instances - ldata[:avg_num_children]
|
@@ -234,30 +234,31 @@ class PatLattice
|
|
234
234
|
end
|
235
235
|
end
|
236
236
|
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
237
|
+
if @opts[:coloring] == 0
|
238
|
+
color = "#ffffff"
|
239
|
+
else
|
240
|
+
if zscore.nan? or zscore == 0.0
|
241
|
+
color = "#ffffff"
|
242
|
+
elsif zscore >= 3.0
|
243
|
+
color = @opts[:coloring] == 1 ? "2" : "6"
|
244
|
+
elsif zscore >= 1.5
|
245
|
+
color = @opts[:coloring] == 1 ? "3" : "5"
|
246
|
+
elsif zscore >= 1.0
|
247
|
+
color = @opts[:coloring] == 1 ? "4" : "4"
|
248
|
+
elsif zscore >= 0.5
|
249
|
+
color = @opts[:coloring] == 1 ? "5" : "3"
|
250
|
+
elsif zscore > 0.0
|
251
|
+
color = @opts[:coloring] == 1 ? "6" : "2"
|
252
|
+
elsif zscore >= -0.5
|
253
|
+
color = @opts[:coloring] == 1 ? "7" : "1"
|
254
|
+
elsif zscore >= -1.0
|
255
|
+
color = @opts[:coloring] == 1 ? "8" : "1"
|
256
|
+
elsif zscore >= -1.5
|
257
|
+
color = @opts[:coloring] == 1 ? "9" : "1"
|
258
|
+
elsif zscore >= -3.5
|
259
|
+
color = @opts[:coloring] == 1 ? "10" : "1"
|
260
|
+
else
|
261
|
+
color = @opts[:coloring] == 1 ? "11" : "1"
|
261
262
|
end
|
262
263
|
end
|
263
264
|
border = "0"
|
@@ -278,16 +279,27 @@ class PatLattice
|
|
278
279
|
end
|
279
280
|
|
280
281
|
def create_node(graph, node_id, node_label)
|
282
|
+
case @opts[:coloring]
|
283
|
+
when 1
|
284
|
+
colorscheme = "rdylbu11"
|
285
|
+
when 2
|
286
|
+
colorscheme = "greys9"
|
287
|
+
else
|
288
|
+
colorscheme = ""
|
289
|
+
end
|
290
|
+
|
281
291
|
graph.node(node_id, :label => node_label, :shape => "plaintext",
|
282
292
|
:height => "0.0", :width => "0.0",
|
283
|
-
:margin => "0.0", :colorscheme =>
|
293
|
+
:margin => "0.0", :colorscheme => colorscheme, :URL => node_id)
|
284
294
|
end
|
285
295
|
|
286
296
|
def generate_dot
|
287
|
-
setup_data if (@opts[:coloring] || !@opts[:simple])
|
297
|
+
setup_data if (@opts[:coloring] != 0 || !@opts[:simple])
|
288
298
|
nodes_drawn = []
|
289
299
|
rankdir = @opts[:vertical] ? "" : "LR"
|
290
|
-
|
300
|
+
nodesep = @opts[:nodesep] ? @opts[:nodesep].to_s : "0.8"
|
301
|
+
ranksep = @opts[:ranksep] ? @opts[:ranksep].to_s : "0.8"
|
302
|
+
plb = RubyGraphviz.new("plb", :rankdir => rankdir, :nodesep => nodesep, :ranksep => ranksep)
|
291
303
|
levels.each do |level|
|
292
304
|
level.each do |node|
|
293
305
|
node_id = node.object_id
|
@@ -303,7 +315,7 @@ class PatLattice
|
|
303
315
|
create_node(plb, cnode_id, cnode_label)
|
304
316
|
nodes_drawn << node_id
|
305
317
|
end
|
306
|
-
if @opts[:coloring]
|
318
|
+
if @opts[:coloring] != 0
|
307
319
|
colors = []
|
308
320
|
@coloring.each do |color, val|
|
309
321
|
if val.index(node.data) and val.index(cnode.data)
|
@@ -311,7 +323,7 @@ class PatLattice
|
|
311
323
|
end
|
312
324
|
end
|
313
325
|
else
|
314
|
-
colors = ["
|
326
|
+
colors = ["gray60"]
|
315
327
|
end
|
316
328
|
plb.edge(node_id, cnode_id, :color => colors.join(":"))
|
317
329
|
end
|
data/rubyplb.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rubyplb}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.7"
|
9
9
|
s.required_ruby_version = ">=1.8.6"
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kow Kuroda", "Yoichiro Hasebe"]
|