def render(svg, options = {})
      #TODO ensure this works with new points
      current_points = points
      
      layers.each do |layer|
        real_points = layer.points
        layer.points = current_points
        layer_options = options.dup
        layer_options[:color] = layer.preferred_color || layer.color || options[:theme].next_color          
        layer.render(svg, layer_options)
        options.merge(layer_options)
        layer.points = real_points
        
        layer.points.each_with_index { |val, idx| current_points[idx] -= val }
      end
    end
def render(svg, options = {})
      #TODO ensure this works with new points
      current_points = points
      
      layers.each do |layer|
        real_points = layer.points
        layer.points = current_points
        layer_options = options.dup
        layer_options[:color] = layer.preferred_color || layer.color || options[:theme].next_color          
        layer.render(svg, layer_options)
        options.merge(layer_options)
        layer.points = real_points
        
        layer.points.each_with_index { |val, idx| current_points[idx] -= val }
      end
    end
Returns new Stacked graph.

 You can provide a block for easily adding layers during (just after) initialization.
 Example:
   Stacked.new do |stacked|
     stacked << Scruffy::Layers::Line.new( ... )
     stacked.add(:bar, 'My Bar', [...])
   end

 The initialize method passes itself to the block, and since stacked is a LayerContainer,
 layers can be added just as if they were being added to Graph.
 Overrides Base#render to fiddle with layers' points to achieve a stacked effect.