Dart 语言 Flutter图表库应用

Dart阿木 发布于 2025-06-18 6 次阅读


Flutter图表库应用开发指南

随着移动应用的日益普及,图表作为数据可视化的重要手段,在Flutter应用中扮演着越来越重要的角色。Flutter作为Google推出的跨平台UI框架,提供了丰富的图表库,使得开发者可以轻松地实现各种图表效果。本文将围绕Dart语言和Flutter图表库应用这一主题,详细介绍如何在Flutter中实现各种图表,并分享一些实用的开发技巧。

Flutter图表库主要包括以下几种:

- Flutter Charts: 一个开源的图表库,支持多种图表类型,如折线图、柱状图、饼图等。

- Fl_chart: 一个高性能的图表库,支持多种图表类型,具有较好的性能和可定制性。

- Cupertino Charts: 一个基于Cupertino风格的图表库,适用于iOS风格的Flutter应用。

以下将分别介绍这些图表库的使用方法。

Flutter Charts

安装

需要在`pubspec.yaml`文件中添加以下依赖:

yaml

dependencies:


flutter:


sdk: flutter


charts: ^0.12.0


然后运行`flutter pub get`命令安装依赖。

使用

以下是一个简单的折线图示例:

dart

import 'package:flutter/material.dart';


import 'package:charts_flutter/flutter.dart' as charts;

void main() {


runApp(MyApp());


}

class MyApp extends StatelessWidget {


@override


Widget build(BuildContext context) {


return MaterialApp(


title: 'Flutter Charts Example',


home: LineChartExample(),


);


}


}

class LineChartExample extends StatelessWidget {


final List<charts.Series<SampleTimeSeriesData, DateTime>> seriesList;

LineChartExample() : seriesList = _createSampleData();

static List<charts.Series<SampleTimeSeriesData, DateTime>> _createSampleData() {


final data = [


SampleTimeSeriesData(DateTime(2021, 1, 1), 5),


SampleTimeSeriesData(DateTime(2021, 1, 2), 10),


SampleTimeSeriesData(DateTime(2021, 1, 3), 15),


SampleTimeSeriesData(DateTime(2021, 1, 4), 20),


SampleTimeSeriesData(DateTime(2021, 1, 5), 25),


];

return [


charts.Series<SampleTimeSeriesData, DateTime>(


id: 'Sales',


colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,


domainFn: (SampleTimeSeriesData sales, _) => sales.time,


measureFn: (SampleTimeSeriesData sales, _) => sales.sales,


data: data,


),


];


}

@override


Widget build(BuildContext context) {


return charts.LineChart(seriesList);


}


}

class SampleTimeSeriesData {


final DateTime time;


final int sales;

SampleTimeSeriesData(this.time, this.sales);


}


Fl_chart

安装

在`pubspec.yaml`文件中添加以下依赖:

yaml

dependencies:


flutter:


sdk: flutter


fl_chart: ^0.20.0


然后运行`flutter pub get`命令安装依赖。

使用

以下是一个简单的柱状图示例:

dart

import 'package:flutter/material.dart';


import 'package:fl_chart/fl_chart.dart';

void main() {


runApp(MyApp());


}

class MyApp extends StatelessWidget {


@override


Widget build(BuildContext context) {


return MaterialApp(


title: 'Fl_chart Example',


home: BarChartExample(),


);


}


}

class BarChartExample extends StatelessWidget {


@override


Widget build(BuildContext context) {


return Scaffold(


appBar: AppBar(


title: Text('Bar Chart Example'),


),


body: BarChartSample1(),


);


}


}

class BarChartSample1 extends StatelessWidget {


final BarChartData barChartData;

BarChartSample1() : barChartData = _getBarChartData();

static BarChartData _getBarChartData() {


return BarChartData(


barTouchData: BarTouchData(


touchCallback: (barData, index, reactiveTouch) {


if (reactiveTouch == null) return;


},


),


titlesData: TitlesData(


bottomTitle: SideTitle(title: Text('Month')),


leftTitle: SideTitle(title: Text('Value')),


),


borderData: FlBorderData(


show: true,


border: Border.all(


color: const Color(0xff37434d),


width: 1,


),


),


barGroups: [


BarChartGroupData(


x: 1,


barsSpace: 4,


barData: BarData(


bars: [


Bar(


y: 40,


color: Colors.blue,


),


Bar(


y: 55,


color: Colors.red,


),


Bar(


y: 70,


color: Colors.purple,


),


],


),


),


],


);


}

@override


Widget build(BuildContext context) {


return Container(


width: double.infinity,


height: 300,


child: BarChart(barChartData),


);


}


}


Cupertino Charts

安装

在`pubspec.yaml`文件中添加以下依赖:

yaml

dependencies:


flutter:


sdk: flutter


cupertino_charts: ^0.1.0


然后运行`flutter pub get`命令安装依赖。

使用

以下是一个简单的饼图示例:

dart

import 'package:flutter/material.dart';


import 'package:cupertino_charts/cupertino_charts.dart';

void main() {


runApp(MyApp());


}

class MyApp extends StatelessWidget {


@override


Widget build(BuildContext context) {


return MaterialApp(


title: 'Cupertino Charts Example',


home: PieChartExample(),


);


}


}

class PieChartExample extends StatelessWidget {


@override


Widget build(BuildContext context) {


return Scaffold(


appBar: AppBar(


title: Text('Pie Chart Example'),


),


body: Center(


child: CupertinoPieChart(


data: [


CupertinoPieChartData(


color: Colors.blue,


value: 40,


label: 'Category A',


),


CupertinoPieChartData(


color: Colors.red,


value: 30,


label: 'Category B',


),


CupertinoPieChartData(


color: Colors.green,


value: 30,


label: 'Category C',


),


],


),


),


);


}


}


总结

本文介绍了Flutter图表库的应用,包括Flutter Charts、Fl_chart和Cupertino Charts。通过这些图表库,开发者可以轻松地在Flutter应用中实现各种图表效果。在实际开发中,可以根据需求选择合适的图表库,并结合Dart语言进行定制化开发。希望本文能对Flutter图表库应用开发有所帮助。