drawLabels method

  1. @override
void drawLabels()
override

Draws text labels. Labels must be drawn only after drawing the data points.

Implementation

@override
void drawLabels() {
  var labelCountX = getLabelCountX();
  var labelCountY = getLabelCountY();
  var rangeX  = gridMaxPxX - gridMinPxX;
  var rangeY = gridMaxPxY - gridMinPxY;

  var minX = getLabelMinX();
  var minY = getLabelMinY();
  var maxX = getLabelMaxX();
  var maxY = getLabelMaxY();

  var spaceX = rangeX/(labelCountX-1);
  var spaceY = rangeY/(labelCountY-1);
  var intervalX = (maxX - minX)/(labelCountX-1);
  var intervalY = (maxY - minY)/(labelCountY-1);

  ctx.font = labelFontStyle;
  ctx.shadowColor = '';
  ctx.shadowBlur = 0;
  ctx.shadowOffsetX = 0;
  ctx.shadowOffsetY = 0;
  ctx.textBaseline = 'middle';
  ctx.textAlign = 'right';
  ctx.fillStyle = labelFillStyle.toJS;
  for (var i = 0; i < labelCountY; i++) {
    ctx.fillText(labelFormatY(maxY - intervalY*i), gridMinPxX - textMargin, gridMinPxY + spaceY*i, maxLabelWidthY);
  }

  ctx.textAlign = 'center';
  ctx.textBaseline = 'top';
  for (var i = 0; i < labelCountX; i++) {
    ctx.fillText(labelFormatX((minX + intervalX*i)), gridMinPxX + spaceX*i, gridMaxPxY + textMargin, maxLabelWidthX);
  }
}