draw method

  1. @override
void draw(
  1. Canvas canvas,
  2. Size size,
  3. ChartContext context
)
override

Implementation

@override
void draw(Canvas canvas, Size size, ChartContext context) {
  final anim = context.animationValue;
  final sizeRange = _globalSizeRange(context.config.series);

  for (var s = 0; s < context.config.series.length; s++) {
    final series = context.config.series[s];
    final color = series.style.color ?? context.theme.seriesColor(s);

    for (final point in series.points) {
      final y =
          context.viewport.minY + (point.y - context.viewport.minY) * anim;
      final offset = context.transformer.dataToCanvas(point.x, y);
      final radius = _radiusFor(point, sizeRange);
      final paint = context.paintCache.fill(
        'bubble-$s-${point.x}-${point.y}',
        color.withValues(alpha: series.style.opacity),
      );
      canvas.drawCircle(offset, radius, paint);

      if (series.style.strokeWidth > 0) {
        canvas.drawCircle(
          offset,
          radius,
          context.paintCache.get(
            key: 'bubble-stroke-$s',
            color: color.withValues(alpha: 0.4),
            strokeWidth: series.style.strokeWidth,
          ),
        );
      }
    }
  }
}