<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adli Rafif</title>
    <description>The latest articles on DEV Community by Adli Rafif (@redhunter7).</description>
    <link>https://dev.to/redhunter7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F684172%2Fd1d0b2fe-1aac-4387-864c-fa3aab922da5.png</url>
      <title>DEV Community: Adli Rafif</title>
      <link>https://dev.to/redhunter7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/redhunter7"/>
    <language>en</language>
    <item>
      <title>Flutter - Create Simple Pie Chart</title>
      <dc:creator>Adli Rafif</dc:creator>
      <pubDate>Thu, 02 Sep 2021 19:15:25 +0000</pubDate>
      <link>https://dev.to/redhunter7/flutter-create-simple-pie-chart-15lj</link>
      <guid>https://dev.to/redhunter7/flutter-create-simple-pie-chart-15lj</guid>
      <description>&lt;h2&gt;
  
  
  A. Introduction
&lt;/h2&gt;

&lt;p&gt;The last chapter, we will create a simple Pie Chart using &lt;a href="https://pub.dev/packages/fl_chart" rel="noopener noreferrer"&gt;FL Chart Package&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Freshrd4zyzwac7yd923p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Freshrd4zyzwac7yd923p.png" alt="Result Image"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  B. Step To Create Pie Chart
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;If you already read my previous tutorial about &lt;a href="https://dev.to/redhunter7/flutter-create-simple-line-chart-1h5n"&gt;line chart&lt;/a&gt; and &lt;a href=""&gt;bar chart&lt;/a&gt;, you can skip step 1 - 4.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6w399qvqi2s7qqp4q51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6w399qvqi2s7qqp4q51.png" alt="File Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1).&lt;/strong&gt; Create a Flutter project on your text editor like VS Code or Android Studio. For the detail of creating a new flutter project, you can visit this link : &lt;a href="https://flutter.dev/docs/get-started/test-drive?tab=vscode#create-app" rel="noopener noreferrer"&gt;How To Create new Flutter Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2).&lt;/strong&gt; Install FL Chart using the below command :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

flutter pub add fl_chart


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;3).&lt;/strong&gt; In &lt;code&gt;lib&lt;/code&gt; folder, create new file named &lt;code&gt;chart_container.dart&lt;/code&gt; and insert the below code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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: &amp;lt;Widget&amp;gt;[
            Text(
              title,
              style: TextStyle(
                  color: Colors.white,
                  fontSize: 16,
                  fontWeight: FontWeight.bold),
            ),
            Expanded(
                child: Container(
              padding: EdgeInsets.only(top: 10),
              child: chart,
            ))
          ],
        ),
      ),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ChartContainer&lt;/code&gt; class was created to store a chart and avoid writing the same code repeatedly.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

class ChartContainer extends StatelessWidget


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;4).&lt;/strong&gt; Make 2 new folder named &lt;code&gt;chart&lt;/code&gt; and &lt;code&gt;chart_data&lt;/code&gt; inside &lt;code&gt;lib&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5).&lt;/strong&gt; Open &lt;code&gt;main.dart&lt;/code&gt; in &lt;code&gt;lib&lt;/code&gt; folder, then write the below code.  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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() =&amp;gt; _MyHomePageState();
}

class _MyHomePageState extends State&amp;lt;MyHomePage&amp;gt; {
  @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: &amp;lt;Widget&amp;gt;[
              ChartContainer(
                title: 'Pie Chart', 
                color: Color(0xff24b273), 
                chart: PieChartContent()
              ), 
            ],
          ),
        ));
  }
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;6).&lt;/strong&gt; To draw a Pie Chart, We need to create a file called &lt;code&gt;pie_chart.dart&lt;/code&gt; then make a StatelessWidget Class named &lt;code&gt;PieChartContent&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pie_chart.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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(),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;7).&lt;/strong&gt; Next, we make a new file again called &lt;code&gt;pie_chart_data.dart&lt;/code&gt;. In the file we have been created, write a &lt;code&gt;pieChartSectionData&lt;/code&gt; list which contain sections data of Pie Chart. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;pie_chart_data.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'dart:ui';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';

List&amp;lt;PieChartSectionData&amp;gt; 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),
    ),
];


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;PieChartSectionData&lt;/code&gt; is a widget to draw a pie chart section in FL Chart Package.&lt;/li&gt;
&lt;li&gt;The usage of &lt;code&gt;value&lt;/code&gt; property is to determine a weight of a section. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8).&lt;/strong&gt; After creating a list of sections data, we can include that list to &lt;code&gt;PieChartData&lt;/code&gt; widget in &lt;code&gt;pie_chart.dart&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Don't forget to add import code on top of the line.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart_tutorial/chart_data/pie_chart_data.dart';


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Include &lt;code&gt;pieChartSectionata&lt;/code&gt; list.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sections: pieChartSectionData


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The code will look like this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pie_chart.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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
    ));
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Output : &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikan9bpnrg1cxk9b443i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikan9bpnrg1cxk9b443i.png" alt="Chart 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9).&lt;/strong&gt; Next, we need to remove a center space of pie chart and space between each section.&lt;/p&gt;

&lt;p&gt;Remove center space of pie chart with set value of &lt;code&gt;centerSpaceRadius&lt;/code&gt; to 0.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

centerSpaceRadius: 0


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Also remove space between section with set value of &lt;code&gt;sectionsSpace&lt;/code&gt; to 0.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sectionsSpace: 0


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The Code :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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
    ));
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Output :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzknum2w14d6k3ibt6if.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzknum2w14d6k3ibt6if.png" alt="Chart 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10).&lt;/strong&gt; As you can see in the last output picture, the pie chart size looks small. To extend its size, we must set the radius of each section in &lt;code&gt;pieChartSectionData&lt;/code&gt; based on the device screen width.&lt;/p&gt;

&lt;p&gt;To do that way, we need to change the code of &lt;code&gt;pie_chart_data.dart&lt;/code&gt; file by create a function with a return &lt;code&gt;list&amp;lt;PieChartSectionData&amp;gt;&lt;/code&gt; type.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pie_chart_data.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'dart:ui';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';

List&amp;lt;PieChartSectionData&amp;gt; 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),
    ),
  ];
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;getSectionData&lt;/code&gt; function have parameter with &lt;code&gt;double&lt;/code&gt; variable called &lt;code&gt;screenWidth&lt;/code&gt;. this parameter is used to determine radius value of each pie chart section.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;11).&lt;/strong&gt; Last, open &lt;code&gt;pie_chart.dart&lt;/code&gt; file and change &lt;code&gt;sections&lt;/code&gt; property value by include the &lt;code&gt;getSectionData&lt;/code&gt; function.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;MediaQuery.of(context).size.width&lt;/code&gt; syntax is used to retrieve the device screen width.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sections: getSectionData(MediaQuery.of(context).size.width)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The final code of &lt;code&gt;pie_chart.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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)
    ));
  }
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Final output :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0rj26vu5hqsipwn6rsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0rj26vu5hqsipwn6rsi.png" alt="Chart 5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  C. Conclusion
&lt;/h2&gt;

&lt;p&gt;This is the last tutorial of Flutter Chart Series. I hope this tutorial will help you to create pie chart in flutter.&lt;/p&gt;

&lt;p&gt;For more detail about this tutorial you can check my Github repo at this link: &lt;a href="https://github.com/RedHunter7/Flutter-FLChart-Tutorial" rel="noopener noreferrer"&gt;Source Code of Fl Chart Tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, if you want to learn more about FL Chart Packages you can visit the documentation link : &lt;a href="https://pub.dev/packages/fl_chart" rel="noopener noreferrer"&gt;Fl Chart Documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dart</category>
      <category>flutter</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Flutter - Create Simple Bar Chart</title>
      <dc:creator>Adli Rafif</dc:creator>
      <pubDate>Thu, 26 Aug 2021 19:38:46 +0000</pubDate>
      <link>https://dev.to/redhunter7/flutter-create-simple-bar-chart-8gl</link>
      <guid>https://dev.to/redhunter7/flutter-create-simple-bar-chart-8gl</guid>
      <description>&lt;h2&gt;
  
  
  A. Introduction
&lt;/h2&gt;

&lt;p&gt;Bar Chart is a type of chart which has a function to show the different values of several aspects of data. Because this type of chart is very readable for the user, many developers implement this chart in web and mobile applications.&lt;/p&gt;

&lt;p&gt;So in this tutorial, I will show you how to a create simple bar chart using FL Chart Package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uootqbi0ixb1zenisse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uootqbi0ixb1zenisse.png" alt="Result Image"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  B. Step To Create Line Chart
&lt;/h2&gt;

&lt;p&gt;The process of creating a bar chart is quite similar to &lt;a href="https://dev.to/redhunter7/flutter-create-simple-line-chart-1h5n"&gt;creating a line chart&lt;/a&gt; in the previous tutorial.&lt;/p&gt;

&lt;p&gt;For that reason, you can skip steps 1 - 4 If you already follow &lt;a href="https://dev.to/redhunter7/flutter-create-simple-line-chart-1h5n"&gt;the previous tutorial&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3wkk41hi5onfj16fg7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3wkk41hi5onfj16fg7x.png" alt="File Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1).&lt;/strong&gt; Create a Flutter project on your text editor like VS Code or Android Studio. For the detail of creating a new flutter project, you can visit this link : &lt;a href="https://flutter.dev/docs/get-started/test-drive?tab=vscode#create-app" rel="noopener noreferrer"&gt;How To Create new Flutter Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2).&lt;/strong&gt; Install FL Chart using the below command :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

flutter pub add fl_chart


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;3).&lt;/strong&gt; In &lt;code&gt;lib&lt;/code&gt; folder, create new file named &lt;code&gt;chart_container.dart&lt;/code&gt; and insert the below code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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: &amp;lt;Widget&amp;gt;[
            Text(
              title,
              style: TextStyle(
                  color: Colors.white,
                  fontSize: 16,
                  fontWeight: FontWeight.bold),
            ),
            Expanded(
                child: Container(
              padding: EdgeInsets.only(top: 10),
              child: chart,
            ))
          ],
        ),
      ),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ChartContainer&lt;/code&gt; class was created to store a chart and avoid writing the same code repeatedly.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

class ChartContainer extends StatelessWidget


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;4).&lt;/strong&gt; Make 2 new folder named &lt;code&gt;chart&lt;/code&gt; and &lt;code&gt;chart_data&lt;/code&gt; inside &lt;code&gt;lib&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5).&lt;/strong&gt; Open &lt;code&gt;main.dart&lt;/code&gt; in &lt;code&gt;lib&lt;/code&gt; folder, then write the below code.  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart_tutorial/chart/bar_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() =&amp;gt; _MyHomePageState();
}

class _MyHomePageState extends State&amp;lt;MyHomePage&amp;gt; {
  @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: &amp;lt;Widget&amp;gt;[
              ChartContainer(
                title: 'Bar Chart', 
                color: Color(0xfffc5185), 
                chart: BarChartContent()
              ), 
            ],
          ),
        ));
  }
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;6).&lt;/strong&gt; Create file inside &lt;code&gt;chart&lt;/code&gt; folder named &lt;code&gt;bar_chart.dart&lt;/code&gt;. Then create a stateless widget class named &lt;code&gt;BarChartContent&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class BarChartContent extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BarChart(
      BarChartData(),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;7).&lt;/strong&gt; Input maximum value of axis Y (ex: &lt;code&gt;maxY: 16&lt;/code&gt;) in &lt;code&gt;BarChartData&lt;/code&gt; widget. The code will like this.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Widget build(BuildContext context) {
    return BarChart(
      BarChartData(
        maxY: 16,
      ),
    );
  }


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;maxY: 16&lt;/code&gt; is used to give maximum value of y axis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8).&lt;/strong&gt; So, we already make basic framework of Bar Chart. After that, we create file called 'bar_chart_data.dart' inside &lt;code&gt;chart_data&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;bar_chart_data.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'dart:ui';
import 'package:fl_chart/fl_chart.dart';

List&amp;lt;BarChartGroupData&amp;gt; barChartGroupData = [
  BarChartGroupData(x: 1, barRods: [
    BarChartRodData(y: 10, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
   BarChartGroupData(x: 2, barRods: [
    BarChartRodData(y: 8.5, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
   BarChartGroupData(x: 3, barRods: [
    BarChartRodData(y: 12.6, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
   BarChartGroupData(x: 4, barRods: [
    BarChartRodData(y: 11.4, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
   BarChartGroupData(x: 5, barRods: [
    BarChartRodData(y: 7.5, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
  BarChartGroupData(x: 6, barRods: [
    BarChartRodData(y: 14, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
   BarChartGroupData(x: 7, barRods: [
    BarChartRodData(y: 12.2, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
  ]),
];


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In this file, we create a list called &lt;code&gt;barChartGroupData&lt;/code&gt; which has a purpose to show the bar lines. This list will be added to &lt;code&gt;bar_chart.dart&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

List&amp;lt;BarChartGroupData&amp;gt; barChartGroupData


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;x: 1&lt;/code&gt; is the position of the line bar in the x-axis. For example, we placed the line bar in position 1 on the x-axis.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The usage of &lt;code&gt;barRods&lt;/code&gt; property in &lt;code&gt;BarChartGroupData&lt;/code&gt; is to set height and color of line bars. &lt;code&gt;y: 10&lt;/code&gt; is the height of the a line bar and &lt;code&gt;colors: [Color(0xff43dde6), Color(0xff43dde6)]&lt;/code&gt; is the background color of a line bar.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

BarChartGroupData(x: 1, barRods: [
    BarChartRodData(y: 10, colors: [Color(0xff43dde6), Color(0xff43dde6)]),
])


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;9).&lt;/strong&gt; Well, we have been creating the bar line data of the bar chart. Next we add 'barChartGroupData' list in 'bar_chart.dart' file.&lt;/p&gt;

&lt;p&gt;Add this code in top of the line to import &lt;code&gt;bar_chart_data.dart&lt;/code&gt; file .&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart_tutorial/chart_data/bar_chart_data.dart';


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Most important, add &lt;code&gt;barChartGroupData&lt;/code&gt; list to &lt;code&gt;BarChartData&lt;/code&gt; widget.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

barGroups: barChartGroupData


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The code will look like this :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;bar_chart.dart&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/bar_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class BarChartContent extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BarChart(BarChartData(
      maxY: 16,
      barGroups: barChartGroupData,
    ));
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7rt4vrkrfxm4r6c5q3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7rt4vrkrfxm4r6c5q3n.png" alt="Chart 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10).&lt;/strong&gt; When we look at the picture above, we see the bottom and left titles are still untouchable. In this step, we customize left and bottom titles using &lt;code&gt;FlTitlesData&lt;/code&gt; widget.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The step to customizing titles in a bar chart is similar to a line chart, so you will use the same code from &lt;a href="https://dev.to/redhunter7/flutter-create-simple-line-chart-1h5n"&gt;the previous tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fntnmg95kc1ioe8vp4k85.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fntnmg95kc1ioe8vp4k85.png" alt="Chart Titles"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open &lt;code&gt;bar_chart.dart&lt;/code&gt; file and add this code inside &lt;code&gt;BarChartData&lt;/code&gt; widget.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

titlesData: FlTitlesData(
          bottomTitles: SideTitles(
            showTitles: true,
            getTextStyles: (value) =&amp;gt; TextStyle(
                color: Colors.white, 
                fontSize: 12, 
                fontWeight: FontWeight.bold
              ),
            getTitles: (value) {
              switch (value.toInt()) {
                case 1:
                  return 'Mon';
                case 2:
                  return 'Tues';
                case 3:
                  return 'Wed';
                case 4:
                  return 'Thu';
                case 5:
                  return 'Fri';
                case 6:
                  return 'Sat';
                case 7:
                  return 'Sun';
              }
              return '';
            },
          ),
          leftTitles: SideTitles(
            interval: 4,
            showTitles: true,
            getTextStyles: (value) =&amp;gt; TextStyle(
                color: Colors.white, 
                fontSize: 14, 
                fontWeight: FontWeight.bold
              ),
            getTitles: (value) {
              if(value.toInt() == 0) return '';
              else return value.toInt().toString();
            },
          ),
        ),


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;FlTitlesData&lt;/code&gt; is a widget which has a function to customize titles around charts. On code above, we only customize left and top tiles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When we look at the last output picture, it seems to have too many titles. To decrease titles amount, we set interval to 4 and when we do that, it change the title for example {0,1,2,3,4,5,6,7,8,9,10} to {0,4,8}.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

interval: 4


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;On bottom titles, we change the format from number to day. We must create a custom function to do that and insert that function to &lt;code&gt;getTitles&lt;/code&gt; property in &lt;code&gt;SideTitles&lt;/code&gt; widget.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

getTitles: (value) {
              switch (value.toInt()) {
                case 1:
                  return 'Mon';
                case 2:
                  return 'Tues';
                case 3:
                  return 'Wed';
                case 4:
                  return 'Thu';
                case 5:
                  return 'Fri';
                case 6:
                  return 'Sat';
                case 7:
                  return 'Sun';
              }
              return '';
            },


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jnrgzg9v1gb0l0q32qe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jnrgzg9v1gb0l0q32qe.png" alt="Chart 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11).&lt;/strong&gt; Last, we need to change border style and set bar lines alignment to space-evenly.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

borderData: FlBorderData(
          border: Border.all(
            color: Colors.white, 
            width: 0.5
          )
        ),
alignment: BarChartAlignment.spaceEvenly,


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The final code of &lt;code&gt;bar_chart.dart&lt;/code&gt; will look like this :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/bar_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class BarChartContent extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BarChart(BarChartData(
      titlesData: FlTitlesData(
        bottomTitles: SideTitles(
          showTitles: true,
          getTextStyles: (value) =&amp;gt; TextStyle(
              color: Colors.white, 
              fontSize: 12, 
              fontWeight: FontWeight.bold
            ),
          getTitles: (value) {
            switch (value.toInt()) {
              case 1:
                return 'Mon';
              case 2:
                return 'Tues';
              case 3:
                return 'Wed';
              case 4:
                return 'Thu';
              case 5:
                return 'Fri';
              case 6:
                return 'Sat';
              case 7:
                return 'Sun';
            }
            return '';
          },
        ),
        leftTitles: SideTitles(
          interval: 4,
          showTitles: true,
          getTextStyles: (value) =&amp;gt; TextStyle(
              color: Colors.white, 
              fontSize: 14, 
              fontWeight: FontWeight.bold
            ),
          getTitles: (value) {
              if(value.toInt() == 0) return '';
              else return value.toInt().toString();
          },
        ),
      ),
      borderData:
            FlBorderData(
              border: Border.all(
                color: Colors.white, 
                width: 0.5
              )
            ),
      alignment: BarChartAlignment.spaceEvenly,
      maxY: 16,
      barGroups: barChartGroupData,
    ));
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Final Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zbt36uxnfnyqtq6ik5n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3zbt36uxnfnyqtq6ik5n.png" alt="Chart 4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  C. Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope this guide will help you to create a bar chart in flutter. Thank You for reading my article.&lt;/p&gt;

&lt;p&gt;Next chapter, i will write a tutorial about creating Pie Chart.&lt;/p&gt;

&lt;p&gt;For more detail about this tutorial you can check my Github repo at this link: &lt;a href="https://github.com/RedHunter7/Flutter-FLChart-Tutorial" rel="noopener noreferrer"&gt;Source Code of Fl Chart Tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, if you want to learn more about FL Chart Packages you can visit the documentation link : &lt;a href="https://pub.dev/packages/fl_chart" rel="noopener noreferrer"&gt;Fl Chart Documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dart</category>
      <category>flutter</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Flutter  -  Create Simple Line Chart </title>
      <dc:creator>Adli Rafif</dc:creator>
      <pubDate>Thu, 19 Aug 2021 20:41:10 +0000</pubDate>
      <link>https://dev.to/redhunter7/flutter-create-simple-line-chart-1h5n</link>
      <guid>https://dev.to/redhunter7/flutter-create-simple-line-chart-1h5n</guid>
      <description>&lt;h2&gt;
  
  
  A. Introduction
&lt;/h2&gt;

&lt;p&gt;The chart feature on mobile development is very useful for a user to more understand some data set. The application display will look professional if the chart showing animation and a great display.&lt;/p&gt;

&lt;p&gt;This time, we will create a Line Chart using FL Chart Package. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn5740c7jv7kd7edf8wr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn5740c7jv7kd7edf8wr.png" alt="Result Image"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  B. Step To Create Line Chart
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4i0i5uvsni0vak9rd8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4i0i5uvsni0vak9rd8l.png" alt="File Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1).&lt;/strong&gt; Create a Flutter project on your text editor like VS Code or Android Studio. For the detail of creating a new flutter project, you can visit this link : &lt;a href="https://flutter.dev/docs/get-started/test-drive?tab=vscode#create-app" rel="noopener noreferrer"&gt;How To Create new Flutter Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2).&lt;/strong&gt; Install FL Chart using the below command :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

flutter pub add fl_chart


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;3).&lt;/strong&gt; Open &lt;code&gt;main.dart&lt;/code&gt; in &lt;code&gt;lib&lt;/code&gt; folder, then write the below code.  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart_tutorial/chart/line_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() =&amp;gt; _MyHomePageState();
}

class _MyHomePageState extends State&amp;lt;MyHomePage&amp;gt; {
  @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: &amp;lt;Widget&amp;gt;[
              ChartContainer(
                title: 'Line Chart', 
                color: Color.fromRGBO(45, 108, 223, 1), 
                chart: LineChartContent(),
              ), 
            ],
          ),
        ));
  }
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;4).&lt;/strong&gt; In &lt;code&gt;lib&lt;/code&gt; folder, create new file named &lt;code&gt;chart_container.dart&lt;/code&gt; and insert the below code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

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: &amp;lt;Widget&amp;gt;[
            Text(
              title,
              style: TextStyle(
                  color: Colors.white,
                  fontSize: 16,
                  fontWeight: FontWeight.bold),
            ),
            Expanded(
                child: Container(
              padding: EdgeInsets.only(top: 10),
              child: chart,
            ))
          ],
        ),
      ),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ChartContainer&lt;/code&gt; class was created to store a chart and avoid writing the same code repeatedly.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

class ChartContainer extends StatelessWidget


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;5).&lt;/strong&gt; Create a new folder named &lt;code&gt;chart&lt;/code&gt; in &lt;code&gt;lib&lt;/code&gt; folder,  then create file inside &lt;code&gt;chart&lt;/code&gt; folder named &lt;code&gt;line_chart.dart&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;Insert import code at the top of the line.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;6).&lt;/strong&gt; Next, create a stateless widget class named &lt;code&gt;LineChartContent&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

class LineChartContent extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return LineChart(
      LineChartData(),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;7).&lt;/strong&gt; Input minimum and maximum value of axis X (ex: &lt;code&gt;minX: 1&lt;/code&gt; &amp;amp; &lt;code&gt;maxX: 7&lt;/code&gt;) and axis Y (ex: &lt;code&gt;minY: 0&lt;/code&gt; &amp;amp; &lt;code&gt;maxY: 16&lt;/code&gt;) In &lt;code&gt;LineChartData&lt;/code&gt; widget, . The code will like this.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

Widget build(BuildContext context) {
    return LineChart(
      LineChartData(
        minX: 1,
        minY: 0,
        maxX: 7,
        maxY: 16,
      ),
    );
  }


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;8).&lt;/strong&gt; To create a chart line based on data, create folder &lt;code&gt;chart_data&lt;/code&gt; then make dart file &lt;code&gt;line_chart_data.dart&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;&lt;code&gt;line_chart_data.dart&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';

List&amp;lt;Color&amp;gt; lineColor = [
    Color(0xfff3f169),
];

List&amp;lt;LineChartBarData&amp;gt; lineChartBarData = [
  LineChartBarData(
    colors: lineColor,
    isCurved: true,
    spots: [
      FlSpot(1, 8),
      FlSpot(2, 12.4),
      FlSpot(3, 10.8),
      FlSpot(4, 9),
      FlSpot(5, 8),
      FlSpot(6, 8.6),
      FlSpot(7, 10)
    ]
  )
];


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;lineChartBarData&lt;/code&gt; is a list that used to show the chart's line .&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

List&amp;lt;LineChartBarData&amp;gt; lineChartBarData


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;FlSpot(x, y)&lt;/code&gt; is a syntax to draw x (x starts from left) and y (y starts from bottom) coordinate.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

FlSpot(x, y)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;9).&lt;/strong&gt; After we create &lt;code&gt;lineChartBarData&lt;/code&gt; list, we must add this list on file &lt;code&gt;line_chart.dart&lt;/code&gt; . &lt;/p&gt;

&lt;p&gt;Add this code in top of the line to import &lt;code&gt;line_chart_data.dart&lt;/code&gt; file .&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart_tutorial/chart_data/line_chart_data.dart';


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Most important, add &lt;code&gt;lineChartBarData&lt;/code&gt; list to &lt;code&gt;LineChartData&lt;/code&gt; widget.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

lineBarsData: lineChartBarData


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;line_chart.dart&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/line_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class LineChartContent extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return LineChart(
      LineChartData(
        minX: 1,
        minY: 0,
        maxX: 7,
        maxY: 16,
        lineBarsData: lineChartBarData,
      ),
    );
  }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9mnsclh90wgz2y6gv5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9mnsclh90wgz2y6gv5k.png" alt="Chart 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10).&lt;/strong&gt; In the picture above, you see on left titles and bottom titles still untouchable. We must customize it to make it readable by the user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v1lia4w6yqooi6hea40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v1lia4w6yqooi6hea40.png" alt="Chart Titles"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to &lt;code&gt;line_chart.dart&lt;/code&gt; file and add this code inside &lt;code&gt;LineChartData&lt;/code&gt; widget.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

titlesData: FlTitlesData(
          bottomTitles: SideTitles(
            showTitles: true,
            getTextStyles: (value) =&amp;gt; TextStyle(
                color: Colors.white, 
                fontSize: 12, 
                fontWeight: FontWeight.bold
              ),
            getTitles: (value) {
              switch (value.toInt()) {
                case 1:
                  return 'Mon';
                case 2:
                  return 'Tues';
                case 3:
                  return 'Wed';
                case 4:
                  return 'Thu';
                case 5:
                  return 'Fri';
                case 6:
                  return 'Sat';
                case 7:
                  return 'Sun';
              }
              return '';
            },
          ),
          leftTitles: SideTitles(
            interval: 4,
            showTitles: true,
            getTextStyles: (value) =&amp;gt; TextStyle(
                color: Colors.white, 
                fontSize: 14, 
                fontWeight: FontWeight.bold
              ),
            getTitles: (value) {
              if(value.toInt() == 0) return '';
              else return value.toInt().toString();
            },
          ),
        ),


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Explanation :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;FlTitlesData&lt;/code&gt; is a widget which has a function to customize titles around charts. On code above, we only customize left and top tiles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When we look at the last output picture, it seems to have too many titles. To decrease titles amount, we set interval to 4 and when we do that, it change the title for example {0,1,2,3,4,5,6,7,8,9,10} to {0,4,8}.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

interval: 4


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;On bottom titles, we change the format from number to day. We must create a custom function to do that and insert that function to &lt;code&gt;getTitles&lt;/code&gt; property in &lt;code&gt;SideTitles&lt;/code&gt; widget.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

getTitles: (value) {
              switch (value.toInt()) {
                case 1:
                  return 'Mon';
                case 2:
                  return 'Tues';
                case 3:
                  return 'Wed';
                case 4:
                  return 'Thu';
                case 5:
                  return 'Fri';
                case 6:
                  return 'Sat';
                case 7:
                  return 'Sun';
              }
              return '';
            },


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftekts3r6g45pcgptdz4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftekts3r6g45pcgptdz4o.png" alt="Chart 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11).&lt;/strong&gt; Last step, we need to change the border color to white and remove the horizontal line.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

borderData: FlBorderData(
          border: Border.all(
            color: Colors.white, 
            width: 0.5
          )
        ),
gridData: FlGridData(
          drawHorizontalLine: false,
        ),


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The final code of line chart will look like this :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import 'package:fl_chart/fl_chart.dart';
import 'package:fl_chart_tutorial/chart_data/line_chart_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';

class LineChartContent extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return LineChart(
      LineChartData(
        borderData: FlBorderData(
          border: Border.all(
            color: Colors.white, 
            width: 0.5
          )
        ),
        gridData: FlGridData(
          drawHorizontalLine: false,
        ),
        titlesData: FlTitlesData(
          bottomTitles: SideTitles(
            showTitles: true,
            getTextStyles: (value) =&amp;gt; TextStyle(
                color: Colors.white, 
                fontSize: 12, 
                fontWeight: FontWeight.bold
              ),
            getTitles: (value) {
              switch (value.toInt()) {
                case 1:
                  return 'Mon';
                case 2:
                  return 'Tues';
                case 3:
                  return 'Wed';
                case 4:
                  return 'Thu';
                case 5:
                  return 'Fri';
                case 6:
                  return 'Sat';
                case 7:
                  return 'Sun';
              }
              return '';
            },
          ),
          leftTitles: SideTitles(
            interval: 4,
            showTitles: true,
            getTextStyles: (value) =&amp;gt; TextStyle(
                color: Colors.white, 
                fontSize: 14, 
                fontWeight: FontWeight.bold
              ),
            getTitles: (value) {
              if(value.toInt() == 0) return '';
              else return value.toInt().toString();
            },
          ),
        ),
        minX: 1,
        minY: 0,
        maxX: 7,
        maxY: 16,
        lineBarsData: lineChartBarData,
      ),
    );
  }
}



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Final Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn5740c7jv7kd7edf8wr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn5740c7jv7kd7edf8wr.png" alt="Chart 4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  C. Conclusion
&lt;/h2&gt;

&lt;p&gt;So, this is a tutorial about creating a line chart using Fl Chart. I hope this tutorial will be helpful for you. &lt;/p&gt;

&lt;p&gt;In the next chapter, we will learn about creating a bar chart.&lt;/p&gt;

&lt;p&gt;For more detail about this tutorial you can check my Github repo at this link: &lt;a href="https://github.com/RedHunter7/Flutter-FLChart-Tutorial" rel="noopener noreferrer"&gt;Source Code of Fl Chart Tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, if you want to learn more about FL Chart Packages you can visit the documentation link : &lt;a href="https://pub.dev/packages/fl_chart" rel="noopener noreferrer"&gt;Fl Chart Documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dart</category>
      <category>flutter</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
