【Flutter】charts_flutter로 그래프를 만들어 볼게요.
배경.
현재 구직 애플리케이션을 만들고 있는데 사용자의 구직 상황 진전을 확인할 수 있는 작은 프로그램을 만들고 싶어서 적당한 노트를 만들고 싶습니다.
개발 환경 및 조건
개발 내용
가상 데이터로 사전 준비
위치 보기
dashbord.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:sampleApp/domain/chart_data.dart';
import 'package:sampleApp/view_models/dashbord/dashbord_model.dart';
import 'package:charts_flutter/flutter.dart' as charts;
final _dashBordModel = ChangeNotifierProvider((ref) => DashBordModel());
class DashBord extends ConsumerWidget {
const DashBord({Key? key}) : super(key: key);
Widget build(BuildContext context, WidgetRef ref) {
final model = ref.watch(_dashBordModel);
return Scaffold(
body:chart(dataList: model.done,)
);
}
static Widget chart({required List<ChartData> dataList}) {
List<charts.Series<ChartData, String>> _series = [
charts.Series<ChartData, String>(
id: "sample",
data: dataList,
domainFn: (_sample, _) => _sample.date.toString(),
measureFn: (_sample, _) => _sample.value,
colorFn: (_, __) => charts.ColorUtil.fromDartColor(Colors.grey),
)
];
return SizedBox(
height: 80,
child: charts.BarChart(
_series,
layoutConfig: charts.LayoutConfig(
leftMarginSpec: charts.MarginSpec.fixedPixel(0),
topMarginSpec: charts.MarginSpec.fixedPixel(20),
rightMarginSpec: charts.MarginSpec.fixedPixel(0),
bottomMarginSpec: charts.MarginSpec.fixedPixel(0),
),
primaryMeasureAxis: const charts.NumericAxisSpec(
renderSpec: charts.NoneRenderSpec()),
domainAxis: const charts.OrdinalAxisSpec(
showAxisLine: false, renderSpec: charts.NoneRenderSpec()),
),
)
);
}
}
모델의 곳(샘플)
dashbord_model.dart
import 'package:flutter/material.dart';
import 'package:sampleApp/domain/chart_data.dart';
class DashBordModel extends ChangeNotifier{
List<ChartData> done = [
ChartData(date: DateTime.now(),value: 20),
ChartData(date: DateTime.now().subtract(Duration(days: -2)),value: 11),
ChartData(date: DateTime.now().subtract(Duration(days: -3)),value: 15),
ChartData(date: DateTime.now().subtract(Duration(days: -4)),value: 20),
];
}
데이터 기반
chart_data.dart
class ChartData{
DateTime? date;
int? value;
ChartData({this.date, this.value});
}
Reference
이 문제에 관하여(【Flutter】charts_flutter로 그래프를 만들어 볼게요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/mikaneko/articles/5e563bf370ba0f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)