def split_banded(*arguments) # :args: (min,max,band=1)
      min,max,band=arguments
      band=1 if (arguments.size < 3)
      if (band < 0) 
        
        n = self.domain().size
        total = -band * n
        remaining = max - min - total
        padding = remaining / (n + 1).to_f
        @r = Rubyvis.range(min + padding, max, padding - band);
        @range_band = -band;
      else
        step = (max - min) / (self.domain().size + (1 - band))
        @r = Rubyvis.range(min + step * (1 - band), max, step);
        @range_band = step * band;
      end
      return self
    end
def split_banded(*arguments) # :args: (min,max,band=1)
      min,max,band=arguments
      band=1 if (arguments.size < 3)
      if (band < 0) 
        
        n = self.domain().size
        total = -band * n
        remaining = max - min - total
        padding = remaining / (n + 1).to_f
        @r = Rubyvis.range(min + padding, max, padding - band);
        @range_band = -band;
      else
        step = (max - min) / (self.domain().size + (1 - band))
        @r = Rubyvis.range(min + step * (1 - band), max, step);
        @range_band = step * band;
      end
      return self
    end
Sets the range from the given continuous interval. The interval [<i>
 min</i>, <i>max</i>] is subdivided into <i>n</i> equispaced bands,
 where <i>n</i> is the number of (unique) values in the domain. The first
 and last band are offset from the edge of the range by the distance between bands.

 <p>The band width argument, <tt>band</tt>, is typically in the range [0, 1]
 and defaults to 1. This fraction corresponds to the amount of space in the
 range to allocate to the bands, as opposed to padding. A value of 0.5
 means  that the band width will be equal to the padding width.
 The computed  absolute band width can be retrieved from the range as
 <tt>scale.range_band</tt>.

 <p>If the band width argument is negative, this method will allocate bands
 of a <i>fixed</i> width <tt>-band</tt>, rather than a relative fraction of
 the available space.

 <p>Tip: to inset the bands by a fixed amount <tt>p</tt>, specify a minimum
 value of <tt>min + p</tt> (or simply <tt>p</tt>, if <tt>min</tt> is
 0). Then set the mark width to <tt>scale.range_band - p</tt>.

 <p>This method must be called <i>after</i> the domain is set.