Buscar pacotes, repositórios e categorias de apps

Repositório GitHubsandeshgyw/stacked_bar_graph

gráfico de barras empilhadas

sandeshgyw/stacked_bar_graph open-source repository details.

Capa do projeto gráfico de barras empilhadas
Estrelas
5
Forks
1
Último push (UTC)
20 de mai. de 2021
Status do projeto
Ativo

README original

Texto original em inglês. Visite o GitHub para a versão atual.

stacked_bar_chart

A Flutter package for creating different types of charts.This package gives developer the flexibility to customize their graph as well.

img

Features

  1. Plot graphs

    • Stacked Rounded Rectangle Graph
    • Stacked Rectangele Graph
    • Net Line Graph
    • Net Point Graph
  2. Customize your graph

    • Select if you want to display the net line
    • change core color,line color as well as line width of the net line
  3. Scrollable

    • The graphs plotted are scrollable
  4. Provide data in json format

    • You can use the toMap() and forMap() methods to provide your data in json format
  5. Style your Labels

    • You can style both you X-axis and Y-axis Labels.
  6. Callback on bar tap

    • A callback is provided on tap of each bar. Developer can use this feature as per their need.

Installation

In the dependencies: section of your pubspec.yaml, add the following line:

stacked_bar_chart:

Then import it as :

import 'package:stacked_bar_chart/stacked_bar_chart.dart';

Graph Types

1. Stacked Rounded Rectangle Graph

  • A simple stacked bar graph with rounded borders.

img

  • To plot this graph pass the GraphType.StackedRounded in graphType. as shown below
graphType: GraphType.StackedRounded

You can also change the styling of the line and point plotted.The color,width etc. can be changed using the netLine parameter as :

netLine: NetLine(
                showPointOnly: false,
                showLine: true,
                lineColor: Colors.blue,
                pointBorderColor: Colors.black,
                coreColor: Colors.white,
              ),

img img img

2. Stacked Rectangle Graph

  • A simple stacked bar graph with no rounded borders. You can customize it in the same way as the stacked rounded rectangle graph.

  • To plot this graph pass the GraphType.StackedRect in graphType. as shown below

graphType: GraphType.StackedRect

img img img

3. Net Line Graph

  • A simple line graph plotted with the net values of the data provided. The net values of a particular data is calculated and plotted.It can also be customized in the same way as stacked rounded rectangle graph.

  • To plot this graph pass the GraphType.StackedRect in graphType. as shown below

graphType: GraphType.LineGraph

img

4. Net Point Graph

  • A simple plot of the net values of the data.You can customize the point core and it's outer border using the netPoint parameter.

  • To plot this graph pass the GraphType.StackedRect in graphType. and then pass parameters in netLine to remove the line as shown below

graphType: GraphType.LineGraph
netLine: NetLine(
                showPointOnly: true,
                showLine: false,
                lineColor: Colors.blue,
                pointBorderColor: Colors.black,
                coreColor: Colors.white,
              ),

img

USAGE

class StackedBarGraph extends StatefulWidget {
  StackedBarGraph({Key key}) : super(key: key);

  @override
  _StackedBarGraphState createState() => _StackedBarGraphState();
}

class _StackedBarGraphState extends State<StackedBarGraph> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Stacked Rounded Rectangle Graph"),
      ),
      body: Column(
        children: [
          SizedBox(
            height: 50,
          ),
          Graph(
            yLabelConfiguration: YLabelConfiguration(
              yLabelStyle: TextStyle(
                color: Colors.grey,
                fontSize: 11,
              ),
              interval: 500,
              labelCount: 5,
              yLabelMapper: (num value) {
                return NumberFormat.compactCurrency(
                        locale: "en", decimalDigits: 0, symbol: "\$")
                    .format(value);
              },
            ),
            xLabelConfiguration: XLabelConfiguration(
              xLabelStyle: TextStyle(
                color: Colors.grey,
                fontSize: 11,
              ),
              xLabelMapper: (DateTime date) {
                return DateFormat("MMM yyyy").format(date);
              },
            ),
            netLine: NetLine(
              showLine: true,
              lineColor: Colors.black,
              pointBorderColor: Colors.black,
              coreColor: Colors.yellow,
            ),
            graphType: GraphType.StackedRounded,
            data: GraphData(
              backgroundColor: Colors.white,
              name: "ThePension",
              bars: [
                GraphBar(
                  month: DateTime(2020, 01),
                  sections: [
                    GraphBarSection(value: 200, color: Colors.pink),
                    GraphBarSection(value: 900, color: Colors.blue),
                    GraphBarSection(value: -200, color: Colors.amber),
                    GraphBarSection(value: -700, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 2),
                  sections: [
                    GraphBarSection(value: 300, color: Colors.pink),
                    GraphBarSection(value: 700, color: Colors.blue),
                    GraphBarSection(value: -400, color: Colors.amber),
                    GraphBarSection(value: -600, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 3),
                  sections: [
                    GraphBarSection(value: 400, color: Colors.pink),
                    GraphBarSection(value: 700, color: Colors.blue),
                    GraphBarSection(value: -100, color: Colors.amber),
                    GraphBarSection(value: -900, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 4),
                  sections: [
                    GraphBarSection(value: 400, color: Colors.pink),
                    GraphBarSection(value: 0, color: Colors.blue),
                    GraphBarSection(value: -800, color: Colors.amber),
                    GraphBarSection(value: -400, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 5),
                  sections: [
                    GraphBarSection(value: 700, color: Colors.pink),
                    GraphBarSection(value: 900, color: Colors.blue),
                    GraphBarSection(value: -200, color: Colors.amber),
                    GraphBarSection(value: -100, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 6),
                  sections: [
                    GraphBarSection(value: 900, color: Colors.pink),
                    GraphBarSection(value: 900, color: Colors.blue),
                    GraphBarSection(value: -200, color: Colors.amber),
                    GraphBarSection(value: -100, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 7),
                  sections: [
                    GraphBarSection(value: 300, color: Colors.pink),
                    GraphBarSection(value: 800, color: Colors.blue),
                    GraphBarSection(value: -200, color: Colors.amber),
                    GraphBarSection(value: -1100, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 8),
                  sections: [
                    GraphBarSection(value: 250, color: Colors.pink),
                    GraphBarSection(value: 980, color: Colors.blue),
                    GraphBarSection(value: -210, color: Colors.amber),
                    GraphBarSection(value: -720, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 9),
                  sections: [
                    GraphBarSection(value: 300, color: Colors.pink),
                    GraphBarSection(value: 200, color: Colors.blue),
                    GraphBarSection(value: -200, color: Colors.amber),
                    GraphBarSection(value: -400, color: Colors.purple),
                  ],
                ),
                GraphBar(
                  month: DateTime(2020, 10),
                  sections: [
                    GraphBarSection(value: 200, color: Colors.pink),
                    GraphBarSection(value: 900, color: Colors.blue),
                    GraphBarSection(value: -200, color: Colors.amber),
                    GraphBarSection(value: -700, color: Colors.purple),
                  ],
                ),
              ],
            ),
            onBarTapped: (GraphBar bar) {
              print(bar.month);
            },
          ),
        ],
      ),
    );
  }
}
Sandesh Gyawali GitHub avatar
Autor no GitHub

Sandesh Gyawali ↗

LinguagensDart

Pacotes publicados por este repositório

Dependências usadas

Lista de dependências 4 itens

  • flutter{"sdk":"flutter"}
  • collection^1.15.0
  • intl^0.17.0
  • flutter_testDesenvolvimento{"sdk":"flutter"}

Como escolher um repositório para seu projeto?

Filtre pelo caso de uso, compare a atividade e confira o projeto original antes de adotá-lo.

  1. Busque por nome, autor ou descrição e filtre por tema.
  2. Compare estrelas, forks e envios recentes. Estrelas indicam interesse, mas não garantem qualidade.
  3. Confira o README, a licença e as issues no GitHub antes de usar o projeto.

Fontes e manutenção

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗