     valueMin = null
     valueMax = null
     targets = for s, targetIndex in data
+      options = s.options ? {}
+      drawAsInfinite = options.drawAsInfinite ? false
       values = for datapoint, i in s.datapoints
         value = get_value datapoint, i, targetIndex
         timestamp = get_timestamp datapoint, i, targetIndex
         time = new Date(timestamp * 1000)
         value = transformValue value
-        valueMin = Math.min value, valueMin ? value if value?
-        valueMax = Math.max value, valueMax
+        unless drawAsInfinite
+          valueMin = Math.min value, valueMin ? value if value?
+          valueMax = Math.max value, valueMax
         {value, time: time, x: x(time), original: datapoint}
       bisector = d3.bisector (d) -> d.time
       lineMode =

        radius = 2
        opacity = 1
      target.append('g').attr('class', 'circles')
      .each (d) ->
        circleColor = d.color
        d3.select(this).selectAll('circle')
        .data((d) -> d.scatterValues)
        .enter().append("circle")
        .attr('cx', (d) -> d.x)
        .attr('cy', (d) -> y d.value)
        .attr('fill', circleColor)
        .attr('r', radius)
        .style('fill-opacity', opacity)

    if type is 'line'
      addPath target, false
      addPath target, true
    else if type is 'scatter'
      addCircles target, false
      addCircles target, true

    invisibility(legendG, params.hideLegend)
    legendFontSize = '11px'


    hoverSelections = mouseOver.map ({index}) -> {index, selection: d3.select(container).selectAll ".target#{index}"}
    hoverSelections.onValue ({selection, index}) ->
      path = selection.select('path')
      path.style('stroke-width', (params.lineWidth ? 0) + 3)

      lines = selection.select('.infiniteLines').selectAll('line')
      lines.style('stroke-width', (params.lineWidth ? 0) + 3)

      circles = selection.select('.circles').selectAll('circle')
      circles.attr('r', 4)
      highlightLegend(index)

    unhovers = hoverSelections.merge(mouseOut)
      .withStateMachine([], (previous, event) -> [[event], previous])
      .filter (e) -> e.selection?

    unhovers.onValue ({selection, index}) ->
      highlightLegend(null)
      path = selection.select('path')
      path.style('stroke-width', params.lineWidth)
      lines = selection.select('.infiniteLines').selectAll('line')
      lines.style('stroke-width', params.lineWidth)
      circles = selection.select('.circles').selectAll('circle')
      circles.attr('r', 2)


    mousePosition = mouseMoves.map (pos) ->
      xConstrained = Math.max 0, Math.min(pos[0], width)
