Sha256: 96c55ec9c3f895707be2cc2b79e01304e48cb20efeb7d7c7e1de6780f1749d02

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

# = Dendogram
# A dendrogram (or cluster layout) is a node-link diagram that places leaf nodes of the tree at the same depth. In this example, the classes (orange leaf nodes) are aligned on the right edge, with the packages (blue internal nodes) to the left. As with other tree layouts, dendrograms can also be oriented radially. 
# Uses Protovis API
$:.unshift(File.dirname(__FILE__)+"/../../lib")
require 'rubyvis'


def get_files(path)
  h={}
  Dir.glob("#{path}/*").each {|e|
    next if File.expand_path(e)=~/pkg|web|vendor|doc|~/
    pa=File.expand_path(e) 
    if File.stat(pa).directory?
      h[File.basename(pa)]=get_files(pa)
    else
      h[File.basename(pa)]=File.stat(pa).size
    end
  }
  h
end

files=get_files(File.dirname(__FILE__)+"/../../")


vis = Rubyvis::Panel.new do
  width 200
  height 1500 
  left 40 
  right 160 
  top 10 
  bottom 10 
  layout_cluster do
    nodes pv.dom(files).root("rubyvis").sort(lambda {|a,b| a.node_name<=>b.node_name}).nodes
    group 1
    orient "left"

    link.line  do
      stroke_style "#ccc"
      line_width 1
      antialias false
    end

    node.dot do 
      fill_style {|n| n.first_child ? "#aec7e8" : "#ff7f0e"}
    end
    
    node_label.label
  end
end

vis.render
puts vis.to_svg

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubyvis-0.3.4 examples/5_pv_hierarchies/dendogram.rb