Flutter图表绘制插件nimble_charts_common的使用
Flutter图表绘制插件nimble_charts_common的使用
该包是nimble_charts的一部分。这个包不依赖任何工具包,并包含共享代码。您可以使用此包来构建自己的图表 Flutter UI 库,甚至可以用于类似Jaspr的东西。以下是针对 Flutter 包的文档。
该项目是对已停止维护的charts_flutter的复活。它旨在为 Flutter 开发者提供一个强大且灵活的图表包。 Nimblesite 现在维护此库。虽然包名已更改,但我们正在努力使此分支尽可能与原始版本兼容。
🚀 在线演示:请查看live WASM web app demo以查看图表的实际效果!
❓ 为什么有这个分支?
Dart 3、类型安全、测试和错误修复
类型安全和严格的测试确保了该包是可靠和可维护的。我们对代码应用了数千次自动和手动修复,以提高类型安全,并确保更难破坏此库。还添加了许多新的小部件测试,这意味着更改不应影响UI行为。
这个分支为未来的开发提供了最坚实的基础,我们将继续维护这个库。
请比较其他分支的pubspec.yaml
文件、analysis_options.yaml
文件和测试文件夹。差异显而易见。这个分支仅适用于 Dart 3 及以上版本,具有更好的类型安全性和空安全性。
📊 功能
- 多种图表类型
- 可定制的外观和行为
- 完全原生的 Flutter 实现
- 同时支持移动平台和 Web 平台
- 改进的文档和广泛的示例
🛠️ 安装
在您的 pubspec.yaml
文件中添加以下内容:
dependencies:
nimble_charts: ^0.4.0-beta
📝 使用
这是一个带有基本折线图的完整应用程序。
import 'package:flutter/material.dart';
import 'package:nimble_charts/flutter.dart';
// 定义一个类型别名
typedef LinearSales = ({int year, int sales});
void main() => runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Padding(
padding: const EdgeInsets.all(24),
child: ColoredBox(
color: Colors.white,
child: Padding(
padding: const EdgeInsets.all(24),
child: LineChart(
// 创建一个系列数据
[
Series<LinearSales, int>(
id: 'Sales', // 系列的标识符
colorFn: (_, __) => MaterialPalette.purple.shadeDefault, // 颜色函数
domainFn: (sales, _) => sales.year, // 域函数
measureFn: (sales, _) => sales.sales, // 测量函数
data: [ // 数据点
(year: 0, sales: 5),
(year: 1, sales: 25),
(year: 2, sales: 100),
(year: 3, sales: 75),
],
),
],
),
),
),
),
),
),
);
对于更多示例和详细的文档,请参阅示例应用程序和文档。
⚖️ 许可证
本项目在 Apache 2.0 许可证下继续原始的 Google Charts 库。我们尊重原始许可证和归属声明。详情请参阅LICENSE 和AUTHORS 文件。我们感谢 Google 团队为此库所做的宝贵工作。
运行测试
示例应用程序有许多小部件测试。每个小部件测试都会生成黄金文件。这些黄金文件是在 Linux 上通过 GitHub 动作生成的,因此它们会始终与您的本地机器略有不同。如果您想在本地运行测试,需要运行以下命令:
flutter test --update-goldens
更多关于Flutter图表绘制插件nimble_charts_common的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter图表绘制插件nimble_charts_common的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用Flutter图表绘制插件nimble_charts_common
的代码案例。请注意,nimble_charts_common
通常作为其他Nimble系列图表库(如nimble_chart_line
、nimble_chart_bar
等)的依赖项,它本身并不直接用于绘制图表,而是提供了一些共通的类型和工具。因此,我们将结合一个具体的Nimble图表库(例如nimble_chart_line
)来展示如何使用这些插件。
首先,确保你的pubspec.yaml
文件中已经包含了必要的依赖项:
dependencies:
flutter:
sdk: flutter
nimble_chart_line: ^x.y.z # 请替换为最新版本号
nimble_charts_common: ^x.y.z # nimble_chart_line 通常会自动包含这个依赖,但显式声明也无妨
然后,在你的Flutter项目中,你可以这样使用nimble_chart_line
来绘制一个简单的折线图,同时利用nimble_charts_common
中提供的类型(例如ChartDataPoint
):
import 'package:flutter/material.dart';
import 'package:nimble_chart_line/nimble_chart_line.dart';
import 'package:nimble_charts_common/nimble_charts_common.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Nimble Charts Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
// 示例数据
final List<ChartDataPoint<double>> dataPoints = [
ChartDataPoint(x: 0.0, y: 5.0),
ChartDataPoint(x: 1.0, y: 15.0),
ChartDataPoint(x: 2.0, y: 10.0),
ChartDataPoint(x: 3.0, y: 25.0),
ChartDataPoint(x: 4.0, y: 10.0),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Nimble Line Chart'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: NimbleLineChart(
dataPoints: dataPoints,
xAxisConfig: NimbleAxisConfig(
title: 'X Axis',
),
yAxisConfig: NimbleAxisConfig(
title: 'Y Axis',
),
seriesConfigs: [
NimbleSeriesConfig(
color: Colors.blue,
label: 'Series 1',
),
],
),
),
);
}
}
在这个例子中,我们:
- 导入了
nimble_chart_line
和nimble_charts_common
包。 - 创建了一个包含
ChartDataPoint<double>
的列表,这些点代表折线图上的数据。 - 在
MyHomePage
的build
方法中,使用NimbleLineChart
小部件来绘制折线图。 - 配置了X轴和Y轴的标题,以及系列的颜色和标签。
请注意,nimble_charts_common
在这里的作用主要是提供了ChartDataPoint
等通用类型,而nimble_chart_line
则负责具体的图表绘制逻辑。如果你需要绘制其他类型的图表(如柱状图、饼图等),你可以类似地使用Nimble系列的其他图表库,并参考它们的文档进行配置。