シンプルな円グラフを作成
A .はじめに
最後の章では、簡単な円グラフを作成しますFL Chart Package .
パイチャートを作成する
If you already read my previous tutorial about and bar chart, you can skip step 1 - 4.
1)VSコードやAndroid Studioのようなテキストエディタでフラッタプロジェクトを作成します.新しいFlutterプロジェクトを作成する詳細については、このリンクを参照できます.How To Create new Flutter Project
2 )以下のコマンドを使用してFLのグラフをインストールします.
flutter pub add fl_chart
3)インlib
フォルダー、新しいファイル名chart_container.dart
以下のコードを挿入します.import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ChartContainer extends StatelessWidget {
final Color color;
final String title;
final Widget chart;
const ChartContainer({
Key? key,
required this.title,
required this.color,
required this.chart,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Center(
child: Container(
width: MediaQuery.of(context).size.width * 0.95,
height: MediaQuery.of(context).size.width * 0.95 * 0.65,
padding: EdgeInsets.fromLTRB(0, 10, 20, 10),
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.circular(20),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
title,
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold),
),
Expanded(
child: Container(
padding: EdgeInsets.only(top: 10),
child: chart,
))
],
),
),
);
}
}
解説ChartContainer
クラスは、グラフを保存し、繰り返し同じコードを書くことを避けるために作成されました.class ChartContainer extends StatelessWidget
4)新しいフォルダを作るchart
and chart_data
内部lib
フォルダ.5)オープン
main.dart
インlib
次に、以下のコードを書きます.import 'package:fl_chart_tutorial/chart/pie_chart.dart';
import 'package:fl_chart_tutorial/chart_container.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'FL Chart Tutorial',
theme: ThemeData(
primarySwatch: Colors.purple,
),
home: MyHomePage(title: 'FL Chart Tutorial'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Container(
color: Color(0xfff0f0f0),
child: ListView(
padding: EdgeInsets.fromLTRB(0, 30, 0, 30),
children: <Widget>[
ChartContainer(
title: 'Pie Chart',
color: Color(0xff24b273),
chart: PieChartContent()
),
],
),
));
}
}
6)円グラフを描画するには、pie_chart.dart
次に、StatelessWidgetクラスという名前のクラスを作成しますPieChartContent
.pie_chart.dart
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class PirChartContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PieChart(
PieChartData(),
);
}
}
7)次に、再び新しいファイルを作りますpie_chart_data.dart
. 作成したファイルで、pieChartSectionData
円グラフのセクションデータを含むリスト.pie_chart_data.dart
import 'dart:ui';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
List<PieChartSectionData> pieChartSectionData = [
PieChartSectionData(
value: 20,
title: '20%',
color: Color(0xffed733f),
),
PieChartSectionData(
value: 35,
title: '35%',
color: Color(0xff584f84),
),
PieChartSectionData(
value: 15,
title: '15%',
color: Color(0xffd86f9b),
),
PieChartSectionData(
value: 30,
title: '30%',
color: Color(0xffa2663e),
),
];
解説PieChartSectionData
FLチャートパッケージで円グラフセクションを描画するウィジェットです.value
プロパティはセクションの重みを決定することです.PieChartData
ウィジェットpie_chart.dart
.行の上にインポートコードを追加することを忘れないでください.
import 'package:fl_chart_tutorial/chart_data/pie_chart_data.dart';
含めるpieChartSectionata
リスト.sections: pieChartSectionData
コードはこのようになります.pie_chart.dart
import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/pie_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class PieChartContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PieChart(PieChartData(
sections: pieChartSectionData
));
}
}
出力:9 )次に、各セクション間の円グラフとスペースの中心空間を削除する必要があります.
パイグラフの中心スペースを
centerSpaceRadius
を0にする.centerSpaceRadius: 0
の間のスペースをsectionsSpace
を0にする.sectionsSpace: 0
コード:import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/pie_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class PieChartContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PieChart(PieChartData(
centerSpaceRadius: 0,
sectionsSpace: 0,
sections: pieChartSectionData
));
}
}
出力:10 )最後の出力画像で見ることができるように、円グラフサイズは小さく見えます.サイズを広げるには、それぞれのセクションの半径を
pieChartSectionData
デバイスの画面幅に基づきます.そのようにするためには、コードの変更が必要です
pie_chart_data.dart
ファイルを返します.list<PieChartSectionData>
種類pie_chart_data.dart
import 'dart:ui';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
List<PieChartSectionData> getSectionData(double screenWidth) {
double radius = screenWidth / 4.44;
return [
PieChartSectionData(
value: 20,
title: '20%',
radius: radius,
color: Color(0xffed733f),
),
PieChartSectionData(
value: 35,
title: '35%',
radius: radius,
color: Color(0xff584f84),
),
PieChartSectionData(
value: 15,
title: '15%',
radius: radius,
color: Color(0xffd86f9b),
),
PieChartSectionData(
value: 30,
title: '30%',
radius: radius,
color: Color(0xffa2663e),
),
];
}
解説getSectionData
関数はdouble
変数screenWidth
. このパラメータは、各円グラフセクションの半径値を決定するために使用されます.pie_chart.dart
ファイルと変更sections
によるプロパティ値getSectionData
関数.
MediaQuery.of(context).size.width
syntax is used to retrieve the device screen width.
sections: getSectionData(MediaQuery.of(context).size.width)
の最終的なコードpie_chart.dart
import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/pie_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class PieChartContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PieChart(PieChartData(
sectionsSpace: 0,
centerSpaceRadius: 0,
sections: getSectionData(MediaQuery.of(context).size.width)
));
}
}
最終出力:c .結論
これはフラッターチャートシリーズの最後のチュートリアルです.私はこのチュートリアルでは、フラッターで円グラフを作成するのに役立ちます願っています.
このチュートリアルについての詳細は、このリンクで私のgithub repoをチェックしてください.Source Code of Fl Chart Tutorial
また、Fl Chartパッケージの詳細については、ドキュメントリンクを参照できます.Fl Chart Documentation
Reference
この問題について(シンプルな円グラフを作成), 我々は、より多くの情報をここで見つけました https://dev.to/redhunter7/flutter-create-simple-pie-chart-15ljテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol