Sha256: 8fea83eccedd7ea0c4dc144d84636c043bcee2f32ff4c96cf5d6f9501743b7e8
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
module Rubyvis class Scale::Ordinal include Rubyvis::Scale def initialize(*args) @d=[] # domain @i={} @r=[] @band=0 domain(*args) end def scale(x) if @i[x].nil? @d.push(x) @i[x]=@d.size-1 end @r[@i[x] % @r.size] end def domain(*arguments) array,f=arguments[0],arguments[1] if(arguments.size>0) array= (array.is_a? Array) ? ((arguments.size>1) ? array.map(&f) : array) : arguments.dup @d=array.uniq i=pv.numerate(d) return self end @d end def range(*arguments) array, f = arguments[0],arguments[1] if(arguments.size>0) @r=(array.is_a? Array) ? ((arguments.size>1) ? array.map(&f) : array) : arguments.dup if @r[0].is_a? String @r=@r.map {|i| pv.color(i)} end self end @r end def split(min,max) step=(max-min).quo(domain().size) @r=pv.range(min+step.quo(2),max,step) self end def by(*arguments) f,dummy=arguments t=self by=lambda {t.scale(f.js_apply(self,arguments))} by end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubyvis-0.1.2 | lib/rubyvis/scale/ordinal.rb |