def domain(*arguments)
      array, f=arguments[0],arguments[1]
      if(arguments.size>0)
      array= (array.is_a? Array) ? ((arguments.size>1) ? Rubyvis.map(array,f) : array) : arguments.dup
        @d=array.uniq
        @i=Rubyvis.numerate(@d)
        return self
      end
      @d
    end
def domain(*arguments)
      array, f=arguments[0],arguments[1]
      if(arguments.size>0)
      array= (array.is_a? Array) ? ((arguments.size>1) ? Rubyvis.map(array,f) : array) : arguments.dup
        @d=array.uniq
        @i=Rubyvis.numerate(@d)
        return self
      end
      @d
    end
Sets or gets the input domain. This method can be invoked several ways:

 <p>1. <tt>domain(values...)</tt>

 <p>Specifying the domain as a series of values is the most explicit and
 recommended approach. However, if the domain values are derived from data,
 you may find the second method more appropriate.

 <p>2. <tt>domain(array, f)</tt>

 <p>Rather than enumerating the domain values as explicit arguments to this
 method, you can specify a single argument of an array. In addition, you can
 specify an optional accessor function to extract the domain values from the
 array.

 <p>3. <tt>domain()</tt>

 <p>Invoking the <tt>domain</tt> method with no arguments returns the
 current domain as an array.