def bottom_value(padding=nil) # :nodoc:
      botval = points[0].min
      points.each do |point_set|
        botval = ( (botval>point_set.min) ? point_set.min : botval )
      end
      #botval = layers.inject(0) do |min, layer| 
      #  (min = ((min > layer.bottom_value) ? layer.bottom_value : min)) unless layer.bottom_value.nil?
      #  min 
      #end
      above_zero = (botval >= 0)
      botval = (botval - ((top_value(nil) - botval) * 0.15)) if padding == :padded
    
      # Don't introduce negative values solely due to padding.
      # A user-provided value must be negative before padding will extend into negative values.
      (above_zero && botval < 0) ? 0 : botval
    end
def bottom_value(padding=nil) # :nodoc:
      botval = points[0].min
      points.each do |point_set|
        botval = ( (botval>point_set.min) ? point_set.min : botval )
      end
      #botval = layers.inject(0) do |min, layer| 
      #  (min = ((min > layer.bottom_value) ? layer.bottom_value : min)) unless layer.bottom_value.nil?
      #  min 
      #end
      above_zero = (botval >= 0)
      botval = (botval - ((top_value(nil) - botval) * 0.15)) if padding == :padded
    
      # Don't introduce negative values solely due to padding.
      # A user-provided value must be negative before padding will extend into negative values.
      (above_zero && botval < 0) ? 0 : botval
    end
Returns the lowest value in any of this container's layers.

 If padding is set to :padded, a 15% padding is added below the lowest value.
 If the lowest value is greater than zero, then the padding will not cross the zero line, preventing
 negative values from being introduced into the graph purely due to padding.