draw method
Implementation
@override
void draw(Canvas canvas, Size size, ChartContext context) {
final anim = context.animationValue;
final art = SeriesPaint(context.config.style);
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 rect = Rect.fromCircle(center: offset, radius: radius);
canvas.drawCircle(
offset,
radius,
art.blobFill(
rect,
color,
opacity: (series.style.opacity * 0.9).clamp(0.0, 1.0),
),
);
if (series.style.strokeWidth > 0) {
canvas.drawCircle(
offset,
radius,
context.paintCache.get(
key: 'bubble-stroke-$s',
color: SeriesPaint.lighten(color, 0.1).withValues(alpha: 0.5),
strokeWidth: series.style.strokeWidth,
),
);
}
}
}
}