src/plot/text.js
function getTextRenderData(props, datum, idx) {
  const {plotRect, theme, width, height} = props
  const values = getPlotValues(props, datum, idx, {
    x: getMidX(props.plotRect),
    y: getMidY(props.plotRect),
  })

  if (values.textSnap === 'top') values.y = getMinY(plotRect)
  if (values.textSnap === 'bottom') values.y = getMaxY(plotRect)
  if (values.textSnap === 'left') values.x = getMinX(plotRect)
  if (values.textSnap === 'right') values.x = getMaxX(plotRect)
  if (values.textSnap === 'topLeft') {
    values.x = getMinX(plotRect)
    values.y = getMinY(plotRect)
  }
  if (values.textSnap === 'topRight') {
    values.x = getMaxX(plotRect)
    values.y = getMinY(plotRect)
  }
  if (values.textSnap === 'bottomLeft') {
    values.x = getMinX(plotRect)
    values.y = getMaxY(plotRect)
  }
  if (values.textSnap === 'bottomRight') {
    values.x = getMaxX(plotRect)
    values.y = getMaxY(plotRect)
  }

  const newValues = fitCheckText(values, width, height, theme)
  return {...newValues, type: 'text'}
}
function getTextRenderData(props, datum, idx) {
  const {plotRect, theme, width, height} = props
  const values = getPlotValues(props, datum, idx, {
    x: getMidX(props.plotRect),
    y: getMidY(props.plotRect),
  })

  if (values.textSnap === 'top') values.y = getMinY(plotRect)
  if (values.textSnap === 'bottom') values.y = getMaxY(plotRect)
  if (values.textSnap === 'left') values.x = getMinX(plotRect)
  if (values.textSnap === 'right') values.x = getMaxX(plotRect)
  if (values.textSnap === 'topLeft') {
    values.x = getMinX(plotRect)
    values.y = getMinY(plotRect)
  }
  if (values.textSnap === 'topRight') {
    values.x = getMaxX(plotRect)
    values.y = getMinY(plotRect)
  }
  if (values.textSnap === 'bottomLeft') {
    values.x = getMinX(plotRect)
    values.y = getMaxY(plotRect)
  }
  if (values.textSnap === 'bottomRight') {
    values.x = getMaxX(plotRect)
    values.y = getMaxY(plotRect)
  }

  const newValues = fitCheckText(values, width, height, theme)
  return {...newValues, type: 'text'}
}
generate the array of render data