def merge!(points = {})
      # points must be a Hash
      raise ArgumentError, "key points must be a Hash object" unless points.is_a? Hash
      # ensure the points are all keyed Numeric-ally
      points.each do |key, value|
        raise ArgumentError, "found a point key that is not a Numeric object: #{key.inspect}" unless key.is_a? Numeric
      end

      @points.merge!(points)
      normalize_data
      self
    end
def merge!(points = {})
      # points must be a Hash
      raise ArgumentError, "key points must be a Hash object" unless points.is_a? Hash
      # ensure the points are all keyed Numeric-ally
      points.each do |key, value|
        raise ArgumentError, "found a point key that is not a Numeric object: #{key.inspect}" unless key.is_a? Numeric
      end

      @points.merge!(points)
      normalize_data
      self
    end
merges the given key points with the original points