Dart 语言 charts_flutter 包使用示例

Dart阿木 发布于 2025-06-19 15 次阅读


Dart 语言 charts_flutter 包使用示例详解

Dart 是 Google 开发的一种面向客户端的编程语言,它被广泛应用于 Web、移动和桌面应用程序的开发。charts_flutter 是一个基于 Dart 的图表库,它允许开发者轻松地在 Flutter 应用程序中添加各种图表。本文将围绕 charts_flutter 包的使用,通过一系列示例来展示如何创建不同类型的图表,并探讨其配置和使用方法。

环境准备

在开始之前,确保你的 Flutter 环境已经搭建好。接下来,在你的 Flutter 项目中添加 charts_flutter 包:

dart

dependencies:


flutter:


sdk: flutter


charts_flutter: ^0.12.0


然后运行 `flutter pub get` 来获取依赖。

基础图表创建

1. 线形图

线形图是展示数据随时间变化的常用图表。以下是一个简单的线形图示例:

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(


home: Scaffold(


appBar: AppBar(


title: Text('Line Chart Example'),


),


body: Center(


child: LineChart(),


),


),


);


}


}

class LineChart extends StatelessWidget {


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

LineChart() : 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);


}


2. 饼图

饼图用于展示不同部分占整体的比例。以下是一个简单的饼图示例:

dart

class PieChart extends StatelessWidget {


final List<charts.Series<SamplePieData, String>> seriesList;

PieChart() : seriesList = _createSampleData();

static List<charts.Series<SamplePieData, String>> _createSampleData() {


final data = [


SamplePieData('A', 25),


SamplePieData('B', 35),


SamplePieData('C', 40),


];

return [


charts.Series<SamplePieData, String>(


id: 'Sales',


domainFn: (SamplePieData sales, _) => sales.name,


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


data: data,


),


];


}

@override


Widget build(BuildContext context) {


return charts.PieChart(seriesList);


}


}

class SamplePieData {


final String name;


final int sales;

SamplePieData(this.name, this.sales);


}


高级图表配置

1. 颜色配置

charts_flutter 提供了丰富的颜色配置选项。以下是如何为图表添加自定义颜色的示例:

dart

final List<charts.Series<SampleTimeSeriesData, DateTime>> seriesList = [


charts.Series<SampleTimeSeriesData, DateTime>(


id: 'Sales',


colorFn: (_, __) => charts.ColorUtil.fromDartColor(Color(0xFF00FF00)), // 绿色


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


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


data: data,


),


];


2. 标题和标签配置

你还可以为图表添加标题和标签:

dart

final List<charts.Series<SampleTimeSeriesData, DateTime>> seriesList = [


charts.Series<SampleTimeSeriesData, DateTime>(


id: 'Sales',


title: 'Sales',


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


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


data: data,


),


];


总结

本文通过一系列示例展示了如何使用 charts_flutter 包在 Dart 语言中创建和配置图表。从简单的线形图和饼图到高级的颜色和标签配置,charts_flutter 提供了丰富的功能来满足不同场景的需求。通过学习和实践这些示例,开发者可以轻松地将图表集成到他们的 Flutter 应用程序中,从而提升用户体验。