CircularChart.fromData constructor

CircularChart.fromData({
  1. required Size size,
  2. required List<CircularStackEntry> data,
  3. required CircularChartType chartType,
  4. required bool percentageValues,
  5. required double startAngle,
  6. Map<String?, int>? stackRanks,
  7. Map<String?, int>? entryRanks,
  8. double? holeRadius,
  9. SegmentEdgeStyle? edgeStyle,
})

Implementation

factory CircularChart.fromData({
  required Size size,
  required List<CircularStackEntry> data,
  required CircularChartType chartType,
  required bool percentageValues,
  required double startAngle,
  Map<String?, int>? stackRanks,
  Map<String?, int>? entryRanks,
  double? holeRadius,
  SegmentEdgeStyle? edgeStyle,
}) {
  final double holeRad = holeRadius ?? size.width / (2 + data.length);
  final double stackDistance = (size.width / 2 - holeRad) / (2 + data.length);
  final double stackWidth = stackDistance * _kStackWidthFraction;
  final double startRadius = stackDistance + holeRad;

  List<CircularChartStack> stacks = List<CircularChartStack>.generate(
    data.length,
    (i) => CircularChartStack.fromData(
      stackRanks![data[i].rankKey] ?? i,
      data[i].entries,
      entryRanks,
      percentageValues,
      startRadius + i * stackDistance,
      stackWidth,
      startAngle,
    ),
  );

  return CircularChart(stacks, chartType, edgeStyle: edgeStyle);
}