Flutter图表绘制插件charts_common_new_gennissi的使用
Flutter图表绘制插件charts_common_new_gennissi的使用
在Flutter中,charts_common_new_gennissi
是一个非常强大的图表绘制库。它提供了多种图表类型,并且可以通过简单的配置来实现复杂的图表展示功能。
安装
首先,在您的 pubspec.yaml
文件中添加以下依赖:
dependencies:
charts_common_new_gennissi: ^x.x.x
然后运行以下命令以获取依赖:
flutter pub get
使用示例
线图 (Line Chart)
以下是一个简单的线图示例:
import 'package:flutter/material.dart';
import 'package:charts_common_new_gennissi/common/line_chart.dart' as charts;
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Charts Example'),
),
body: LineChartExample(),
),
);
}
}
class LineChartExample extends StatelessWidget {
final List<charts.Series<LinearSales, int>> seriesList = [
charts.Series(
id: 'Sales',
data: [
LinearSales(year: 0, sales: 5),
LinearSales(year: 1, sales: 25),
LinearSales(year: 2, sales: 100),
LinearSales(year: 3, sales: 75),
],
domainFn: (LinearSales sales, _) => sales.year,
measureFn: (LinearSales sales, _) => sales.sales,
)
];
[@override](/user/override)
Widget build(BuildContext context) {
return Center(
child: Container(
height: 400,
child: charts.LineChart(
seriesList,
animate: true,
),
),
);
}
}
class LinearSales {
final int year;
final int sales;
LinearSales({required this.year, required this.sales});
}
柱状图 (Bar Chart)
以下是一个简单的柱状图示例:
import 'package:flutter/material.dart';
import 'package:charts_common_new_gennissi/common/bar_chart.dart' as charts;
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Charts Example'),
),
body: BarChartExample(),
),
);
}
}
class BarChartExample extends StatelessWidget {
final List<charts.Series<OrdinalSales, String>> seriesList = [
charts.Series(
id: 'Sales',
data: [
OrdinalSales('2014', 5),
OrdinalSales('2015', 25),
OrdinalSales('2016', 100),
OrdinalSales('2017', 75),
],
domainFn: (OrdinalSales sales, _) => sales.year,
measureFn: (OrdinalSales sales, _) => sales.sales,
)
];
[@override](/user/override)
Widget build(BuildContext context) {
return Center(
child: Container(
height: 400,
child: charts.BarChart(
seriesList,
animate: true,
),
),
);
}
}
class OrdinalSales {
final String year;
final int sales;
OrdinalSales(this.year, this.sales);
}
饼图 (Pie Chart)
以下是一个简单的饼图示例:
import 'package:flutter/material.dart';
import 'package:charts_common_new_gennissi/common/pie_chart.dart' as charts;
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Charts Example'),
),
body: PieChartExample(),
),
);
}
}
class PieChartExample extends StatelessWidget {
final List<charts.Series<Sales, String>> seriesList = [
charts.Series(
id: 'Sales',
data: [
Sales('2014', 5),
Sales('2015', 25),
Sales('2016', 100),
Sales('2017', 75),
],
domainFn: (Sales sales, _) => sales.year,
measureFn: (Sales sales, _) => sales.sales,
)
];
[@override](/user/override)
Widget build(BuildContext context) {
return Center(
child: Container(
height: 400,
child: charts.PieChart(
seriesList,
animate: true,
),
),
);
}
}
class Sales {
final String year;
final int sales;
Sales(this.year, this.sales);
}
更多关于Flutter图表绘制插件charts_common_new_gennissi的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter图表绘制插件charts_common_new_gennissi的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
charts_common_new_gennissi
是一个用于在 Flutter 中绘制图表的插件,它是 charts_flutter
的一个分支或变体,提供了丰富的图表类型和自定义选项。虽然它不是官方维护的插件,但它的使用方式与 charts_flutter
非常相似。
以下是如何在 Flutter 项目中使用 charts_common_new_gennissi
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 charts_common_new_gennissi
插件的依赖:
dependencies:
flutter:
sdk: flutter
charts_common_new_gennissi: ^0.12.0 # 请根据实际情况选择版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在需要使用图表的 Dart 文件中导入插件:
import 'package:charts_common_new_gennissi/charts_common_new_gennissi.dart' as charts;
3. 创建图表数据
图表数据通常是一个包含 Series
的列表。Series
是图表中显示的一组数据点。
class SalesData {
final String year;
final int sales;
SalesData(this.year, this.sales);
}
final data = [
SalesData('2017', 100),
SalesData('2018', 150),
SalesData('2019', 200),
SalesData('2020', 250),
SalesData('2021', 300),
];
final series = [
charts.Series<SalesData, String>(
id: 'Sales',
domainFn: (SalesData sales, _) => sales.year,
measureFn: (SalesData sales, _) => sales.sales,
data: data,
)
];
4. 创建并显示图表
使用 charts.BarChart
、charts.LineChart
或其他图表类型来显示数据。
class MyChart extends StatelessWidget {
final List<charts.Series<dynamic, String>> seriesList;
MyChart(this.seriesList);
[@override](/user/override)
Widget build(BuildContext context) {
return charts.BarChart(
seriesList,
animate: true,
domainAxis: charts.OrdinalAxisSpec(),
primaryMeasureAxis: charts.NumericAxisSpec(),
);
}
}
5. 在应用中使用图表
最后,在你的 Flutter 应用中使用这个图表组件。
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Sales Chart')),
body: Center(
child: MyChart(series),
),
),
);
}
}
void main() => runApp(MyApp());
6. 自定义图表
charts_common_new_gennissi
提供了丰富的自定义选项,例如设置颜色、图例、轴标签等。你可以通过传递不同的参数来调整图表的外观和行为。
例如,设置图表的颜色:
final series = [
charts.Series<SalesData, String>(
id: 'Sales',
domainFn: (SalesData sales, _) => sales.year,
measureFn: (SalesData sales, _) => sales.sales,
data: data,
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,
)
];
7. 其他图表类型
除了条形图,charts_common_new_gennissi
还支持其他类型的图表,如折线图、饼图、面积图等。你可以根据需要选择不同的图表类型。
例如,创建一个折线图:
class MyLineChart extends StatelessWidget {
final List<charts.Series<dynamic, String>> seriesList;
MyLineChart(this.seriesList);
[@override](/user/override)
Widget build(BuildContext context) {
return charts.LineChart(
seriesList,
animate: true,
);
}
}