src/plot/lines.js
function getLineRenderData(props, data, idx) {
  if (isEmpty(data)) return undefined
  const path2D = getPath2D()
  const values = getPlotValues(props, head(data), idx, {hoverAlpha: 0.2})
  if (props.interpolate) {
    splineInterpolation(props, data, path2D)
  } else {
    path2D.moveTo(values.x, values.y)
    reduce(
      data,
      (shouldDrawPoint, d) => {
        const x = plotValue(props, d, idx, 'x')
        const y = plotValue(props, d, idx, 'y')
        if (notPlotNumber([x, y])) return false
        if (shouldDrawPoint) path2D.lineTo(x, y)
        else path2D.moveTo(x, y)
        return true
      },
      true
    )
  }
  return {
    ...values,
    data,
    hoverSolver,
    path2D,
    type: 'line',
  }
}
function getLineRenderData(props, data, idx) {
  if (isEmpty(data)) return undefined
  const path2D = getPath2D()
  const values = getPlotValues(props, head(data), idx, {hoverAlpha: 0.2})
  if (props.interpolate) {
    splineInterpolation(props, data, path2D)
  } else {
    path2D.moveTo(values.x, values.y)
    reduce(
      data,
      (shouldDrawPoint, d) => {
        const x = plotValue(props, d, idx, 'x')
        const y = plotValue(props, d, idx, 'y')
        if (notPlotNumber([x, y])) return false
        if (shouldDrawPoint) path2D.lineTo(x, y)
        else path2D.moveTo(x, y)
        return true
      },
      true
    )
  }
  return {
    ...values,
    data,
    hoverSolver,
    path2D,
    type: 'line',
  }
}
function getLineRenderData ( props , data , idx ) { if ( isEmpty ( data ) ) return undefined const path2D = getPath2D ( ) const values = getPlotValues ( props , head ( data ) , idx , { hoverAlpha : 0.2 } ) if ( props . interpolate ) { splineInterpolation ( props , data , path2D ) } else { path2D . moveTo ( values . x , values . y ) reduce ( data , ( shouldDrawPoint , d ) => { const x = plotValue ( props , d , idx , 'x' ) const y = plotValue ( props , d , idx , 'y' ) if ( notPlotNumber ( [ x , y ] ) ) return false if ( shouldDrawPoint ) path2D . lineTo ( x , y ) else path2D . moveTo ( x , y ) return true } , true ) } return { ... values , data , hoverSolver , path2D , type : 'line' , } }
generate the array of render data
generate the array of render data