Flutter圆形图表绘制插件circular_chart_flutter的使用
Flutter圆形图表绘制插件circular_chart_flutter的使用
该插件基于并从flutter_circular_chart分叉而来。这是一个用于使用Flutter创建动画圆形图表库,灵感来源于Zero to One with Flutter。
概览
通过提供数据对象,可以轻松创建动画饼图和径向图。

 

检查示例文件夹以获取上述截图的源代码。
目录
安装
从pub安装最新版本。
入门
导入包:
import 'package:flutter_circular_chart/flutter_circular_chart.dart';
创建一个GlobalKey以便访问图表并更新其数据:
final GlobalKey<AnimatedCircularChartState> _chartKey = new GlobalKey<AnimatedCircularChartState>();
创建图表数据条目对象:
List<CircularStackEntry> data = <CircularStackEntry>[
  new CircularStackEntry(
    <CircularSegmentEntry>[
      new CircularSegmentEntry(500.0, Colors.red[200], rankKey: 'Q1'),
      new CircularSegmentEntry(1000.0, Colors.green[200], rankKey: 'Q2'),
      new CircularSegmentEntry(2000.0, Colors.blue[200], rankKey: 'Q3'),
      new CircularSegmentEntry(1000.0, Colors.yellow[200], rankKey: 'Q4'),
    ],
    rankKey: 'Quarterly Profits',
  ),
];
创建一个AnimatedCircularChart,传入_chartKey和初始数据:
@override
Widget build(BuildContext context) {
  return new AnimatedCircularChart(
    key: _chartKey,
    size: const Size(300.0, 300.0),
    initialChartData: data,
    chartType: CircularChartType.Pie,
  );
}
调用updateData来使图表动画化:
void _cycleSamples() {
  List<CircularStackEntry> nextData = <CircularStackEntry>[
    new CircularStackEntry(
      <CircularSegmentEntry>[
        new CircularSegmentEntry(1500.0, Colors.red[200], rankKey: 'Q1'),
        new CircularSegmentEntry(750.0, Colors.green[200], rankKey: 'Q2'),
        new CircularSegmentEntry(2000.0, Colors.blue[200], rankKey: 'Q3'),
        new CircularSegmentEntry(1000.0, Colors.yellow[200], rankKey: 'Q4'),
      ],
      rankKey: 'Quarterly Profits',
    ),
  ];
  setState(() {
    _chartKey.currentState.updateData(nextData);
  });
}
自定义
孔洞标签
| 属性 | 默认值 | 
|---|---|
| holeLabel | null | 
| labelStyle | Theme.of(context).textTheme.body2 | 
示例:
new AnimatedCircularChart(
  key: _chartKey,
  size: _chartSize,
  initialChartData: <CircularStackEntry>[
    new CircularStackEntry(
      <CircularSegmentEntry>[
        new CircularSegmentEntry(
          33.33,
          Colors.blue[400],
          rankKey: 'completed',
        ),
        new CircularSegmentEntry(
          66.67,
          Colors.blueGrey[600],
          rankKey: 'remaining',
        ),
      ],
      rankKey: 'progress',
    ),
  ],
  chartType: CircularChartType.Radial,
  percentageValues: true,
  holeLabel: '1/3',
  labelStyle: new TextStyle(
    color: Colors.blueGrey[600],
    fontWeight: FontWeight.bold,
    fontSize: 24.0,
  ),
)

段落边框样式
| 属性 | 默认值 | 
|---|---|
| edgeStyle | SegmentEdgeStyle.flat | 
| SegmentEdgeStyle | 描述 | 
|---|---|
| flat (默认) | 段落以平直边缘开始和结束。 | 
| round | 段落以半圆开始和结束。 | 
示例:
new AnimatedCircularChart(
  key: _chartKey,
  size: _chartSize,
  initialChartData: <CircularStackEntry>[
    new CircularStackEntry(
      <CircularSegmentEntry>[
        new CircularSegmentEntry(
          33.33,
          Colors.blue[400],
          rankKey: 'completed',
        ),
        new CircularSegmentEntry(
          66.67,
          Colors.blueGrey[600],
          rankKey: 'remaining',
        ),
      ],
      rankKey: 'progress',
    ),
  ],
  chartType: CircularChartType.Radial,
  edgeStyle: SegmentEdgeStyle.round,
  percentageValues: true,
)
更多关于Flutter圆形图表绘制插件circular_chart_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter圆形图表绘制插件circular_chart_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
circular_chart_flutter 是一个用于在 Flutter 应用中绘制圆形图表(如饼图、环形图等)的插件。虽然 circular_chart_flutter 不是一个官方的Flutter插件,但它的使用方式与其他Flutter插件类似。以下是如何使用 circular_chart_flutter 插件绘制圆形图表的基本步骤。
1. 添加依赖
首先,你需要在 pubspec.yaml 文件中添加 circular_chart_flutter 插件的依赖。
dependencies:
  flutter:
    sdk: flutter
  circular_chart_flutter: ^1.0.0  # 请确保使用最新版本
然后运行 flutter pub get 来获取依赖。
2. 导入包
在你的 Dart 文件中导入 circular_chart_flutter 包。
import 'package:circular_chart_flutter/circular_chart_flutter.dart';
3. 创建图表数据
你可以使用 CircularChartData 类来定义图表的数据。每个数据点由一个 CircularChartSegment 表示。
final List<CircularChartSegment> segments = [
  CircularChartSegment(
    value: 40, // 饼图部分的值
    color: Colors.blue, // 饼图部分的颜色
    label: 'Part 1', // 饼图部分的标签
  ),
  CircularChartSegment(
    value: 30,
    color: Colors.red,
    label: 'Part 2',
  ),
  CircularChartSegment(
    value: 20,
    color: Colors.green,
    label: 'Part 3',
  ),
  CircularChartSegment(
    value: 10,
    color: Colors.yellow,
    label: 'Part 4',
  ),
];
4. 创建图表控件
使用 CircularChart 控件来显示图表。你可以将它添加到你的 build 方法中。
[@override](/user/override)
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('Circular Chart Example'),
    ),
    body: Center(
      child: CircularChart(
        data: CircularChartData(segments: segments),
        chartType: CircularChartType.pie, // 图表类型,可以是 pie 或 donut
        size: Size(200, 200), // 图表的大小
      ),
    ),
  );
}
5. 自定义图表
你可以通过修改 CircularChart 的各个属性来自定义图表的外观,例如图表的类型、大小、颜色、标签等。
CircularChart(
  data: CircularChartData(segments: segments),
  chartType: CircularChartType.donut, // 切换为环形图
  size: Size(250, 250),
  holeRadius: 50, // 环形图的中心孔洞半径
  labelStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), // 标签样式
  legend: true, // 是否显示图例
  legendPosition: LegendPosition.bottom, // 图例位置
)
6. 运行应用
现在你可以运行你的 Flutter 应用,看到绘制的圆形图表。
7. 其他注意事项
- 如果你无法找到 circular_chart_flutter插件,可能是因为它不再维护或未被广泛使用。你可以考虑使用其他更流行的图表库,如fl_chart、charts_flutter等。
- 确保你使用的插件版本与你的 Flutter SDK 兼容。
示例代码
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'package:circular_chart_flutter/circular_chart_flutter.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CircularChartExample(),
    );
  }
}
class CircularChartExample extends StatelessWidget {
  final List<CircularChartSegment> segments = [
    CircularChartSegment(
      value: 40,
      color: Colors.blue,
      label: 'Part 1',
    ),
    CircularChartSegment(
      value: 30,
      color: Colors.red,
      label: 'Part 2',
    ),
    CircularChartSegment(
      value: 20,
      color: Colors.green,
      label: 'Part 3',
    ),
    CircularChartSegment(
      value: 10,
      color: Colors.yellow,
      label: 'Part 4',
    ),
  ];
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Circular Chart Example'),
      ),
      body: Center(
        child: CircularChart(
          data: CircularChartData(segments: segments),
          chartType: CircularChartType.pie,
          size: Size(200, 200),
        ),
      ),
    );
  }
} 
        
       
             
             
            

