Cómo crear gráficos de barras con charts_flutter

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Configuración del proyecto
  • Paso 2: Agregar el charts_fluttercomplemento
  • Paso 3: Andamiaje de la aplicación
  • Paso 4: creación del modelo de suscriptor
  • Paso 5: Creación de los datos
  • Paso 6: Creación del gráfico de barras
  • Paso 7: Visualización del gráfico
  • Conclusión
  • La charts_flutterbiblioteca es una “biblioteca de visualización de datos de Material Design escrita de forma nativa en Dart”. Puedes usar esta biblioteca en tu aplicación Flutter para mostrar datos como gráficos de barras, gráficos de líneas, gráficos de dispersión, gráficos circulares y más.

    En este artículo, utilizará datos sobre el número de suscriptores de World of Warcraft entre los años 2008 y 2015 y los mostrará como un gráfico de barras utilizando charts_flutter.

    Prerrequisitos

    Para completar este tutorial, necesitarás:

    • Para descargar e instalar Flutter .
    • Para descargar e instalar Android Studio o Visual Studio Code .
    • Se recomienda instalar complementos para su editor de código:
      • Fluttery Dartcomplementos instalados para Android Studio.
      • Flutterextensión instalada para Visual Studio Code.

    Este tutorial fue verificado con Flutter v1.22.2, Android SDK v31.0.2 y Android Studio v4.1.

    Paso 1: Configuración del proyecto

    Una vez que haya configurado su entorno para Flutter, puede ejecutar lo siguiente para crear una nueva aplicación:

    1. flutter create charts_flutter_example

    Navegue hasta el nuevo directorio del proyecto:

    1. cd charts_flutter_example

    El uso flutter createproducirá una aplicación de demostración que mostrará la cantidad de veces que se hace clic en un botón.

    Paso 2: Agregar el charts_fluttercomplemento

    A continuación, necesitaremos agregar el charts_fluttercomplemento dentro de nuestro pubspec.yaml:

    archivo pubspec.yaml

    dependencies:  flutter:    sdk: flutter  charts_flutter: ^0.10.0

    Ahora podemos continuar y ejecutar esto en el simulador o dispositivo iOS o Android de su elección.

    Paso 3: Andamiaje de la aplicación

    Ahora, ábrelo main.darten tu editor de código.

    Reemplace todo en este archivo con un MaterialAppque apunte a un HomePageque se puede encontrar en home.dart:

    lib/main.dart

    import 'package:flutter/material.dart';import 'package:charts_flutter_example/home.dart';void main() {  runApp(MyApp());}class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      debugShowCheckedModeBanner: false,      home: HomePage(),    );  }}

    A continuación, cree un nuevo home.dartarchivo y agregue las siguientes líneas de código:

    lib/inicio.dart

    import 'package:flutter/material.dart';class HomePage extends StatelessWidget {  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        backgroundColor: Colors.red,        title: Text("World of Warcraft Subscribers"),      ),      body: Center(        child: Text("charts_flutter_example"),      ),    );  }}

    Ahora que hemos establecido una aplicación base, podemos continuar y crear el modelo para nuestros datos de gráfico de barras.

    Paso 4: creación del modelo de suscriptor

    Nuestro gráfico de barras se centrará en mostrar la cantidad de suscriptores de World of Warcraft para un año en particular.

    A continuación, cree un nuevo subscriber_series.dartarchivo y agregue las siguientes líneas de código:

    lib/serie_de_suscriptores.dart

    import 'package:flutter/foundation.dart';import 'package:charts_flutter/flutter.dart' as charts;class SubscriberSeries {  final String year;  final int subscribers;  final charts.Color barColor;  SubscriberSeries(    {      @required this.year,      @required this.subscribers,      @required this.barColor    }  );}

    Esto nos permite representar nuestros datos de yeary subscribers.

    Paso 5: Creación de los datos

    Para los fines de este tutorial, los datos se crearán dentro de HomePagecomo ListSubscriberSeries:

    Revise home.darty agregue las siguientes líneas de código:

    lib/inicio.dart

    import 'package:flutter/material.dart';import 'package:charts_flutter/flutter.dart' as charts;import 'package:charts_flutter_example/subscriber_series.dart';class HomePage extends StatelessWidget {  final ListSubscriberSeries data = [    SubscriberSeries(      year: "2008",      subscribers: 10000000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2009",      subscribers: 11000000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2010",      subscribers: 12000000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2011",      subscribers: 10000000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2012",      subscribers: 8500000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2013",      subscribers: 7700000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2014",      subscribers: 7600000,      barColor: charts.ColorUtil.fromDartColor(Colors.blue),    ),    SubscriberSeries(      year: "2015",      subscribers: 5500000,      barColor: charts.ColorUtil.fromDartColor(Colors.red),    ),  ];  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        backgroundColor: Colors.red,        title: Text("World of Warcraft Subscribers"),      ),      body: Center(        child: Text("charts_flutter_example"),      ),    );  }}

    ¡Ahora que tenemos nuestros datos, todo lo que necesitamos es crear el gráfico de barras!

    Paso 6: Creación del gráfico de barras

    Ahora, crea un nuevo subscriber_chart.dartarchivo y agrega las siguientes líneas de código:

    lib/subscriber_chart.dart

    import 'package:flutter/material.dart';import 'package:charts_flutter/flutter.dart' as charts;import 'package:charts_flutter_example/subscriber_series.dart';class SubscriberChart extends StatelessWidget {  final ListSubscriberSeries data;  SubscriberChart({@required this.data});}

    Este código crea un nuevo StatelessWidgetnombre SubscriberChartque toma el SubscriberSeriescomo un prop.

    Luego podemos usar esto datapara construir nuestro proyecto charts.Seriesasí:

    lib/subscriber_chart.dart

    import 'package:flutter/material.dart';import 'package:charts_flutter/flutter.dart' as charts;import 'package:charts_flutter_example/subscriber_series.dart';class SubscriberChart extends StatelessWidget {  final ListSubscriberSeries data;  SubscriberChart({@required this.data});  @override  Widget build(BuildContext context) {    Listcharts.SeriesSubscriberSeries, String series = [      charts.Series(        id: "Subscribers",        data: data,        domainFn: (SubscriberSeries series, _) = series.year,        measureFn: (SubscriberSeries series, _) = series.subscribers,        colorFn: (SubscriberSeries series, _) = series.barColor      )    ];  }}

    Los domainFny measureFnse utilizan para comparar los subscribersdatos de ese year.

    También lo usamos colorFnpara pasar potencialmente un barColor.

    Recordemos cómo home.dartse utiliza barColor:

    SubscriberSeries(  year: "2008",  subscribers: 10000000,  barColor: charts.ColorUtil.fromDartColor(Colors.blue),),

    Es posible que queramos hacer que la barColoropción tenga un valor predeterminado Colors.blue(o un color de su elección) en una aplicación de producción. En este tutorial, una barra será de color rojo y las otras serán de color azul.

    Actualicemos la buildfunción para devolver nuestro gráfico:

    lib/subscriber_chart.dart

    import 'package:flutter/material.dart';import 'package:charts_flutter/flutter.dart' as charts;import 'package:charts_flutter_example/subscriber_series.dart';class SubscriberChart extends StatelessWidget {  final ListSubscriberSeries data;  SubscriberChart({@required this.data});  @override  Widget build(BuildContext context) {    Listcharts.SeriesSubscriberSeries, String series = [      charts.Series(        id: "Subscribers",        data: data,        domainFn: (SubscriberSeries series, _) = series.year,        measureFn: (SubscriberSeries series, _) = series.subscribers,        colorFn: (SubscriberSeries series, _) = series.barColor      )    ];    return Container(      height: 400,      padding: EdgeInsets.all(20),      child: Card(        child: Padding(          padding: const EdgeInsets.all(8.0),          child: Column(            children: Widget[              Text(                "World of Warcraft Subscribers by Year",                style: Theme.of(context).textTheme.body2,              ),              Expanded(                child: charts.BarChart(series, animate: true),              )            ],          ),        ),      ),    );  }}

    Este código agrega marcado al charts.BarChartrodearlo con un Card.

    Lo más importante a tener en cuenta es que estamos pasando seriescomo requiredparámetro a charts.BarChart:

    charts.BarChart(series, animate: true)

    En este punto, sus datos y gráficos están listos para usarse.

    Paso 7: Visualización del gráfico

    Por último, vuelve a visitar home.darttu editor de código y cambia buildpara utilizar SubscriberChart:

    lib/inicio.dart

    import 'package:flutter/material.dart';import 'package:charts_flutter/flutter.dart' as charts;import 'package:charts_flutter_example/subscriber_series.dart';import 'package:charts_flutter_example/subscriber_chart.dart';class HomePage extends StatelessWidget {  // ...  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        backgroundColor: Colors.red,        title: Text("World of Warcraft Subscribers"),      ),      body: Center(        child: SubscriberChart(          data: data,        )      ),    );  }}

    Guarde los cambios y ejecute la aplicación en un simulador:

    Su aplicación ahora utiliza charts_flutterun gráfico de barras para mostrar datos.

    Conclusión

    En este artículo, utilizó datos sobre el número de suscriptores de World of Warcraft entre los años 2008 y 2015 y los mostró como un gráfico de barras utilizando charts_flutter.

    Si desea obtener más información sobre Flutter, consulte nuestra página de temas de Flutter para ver ejercicios y proyectos de programación.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion