Cómo crear gráficos de barras con charts_flutter
Introducción
La charts_flutter
biblioteca 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:
Flutter
yDart
complementos instalados para Android Studio.Flutter
extensió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:
- flutter create charts_flutter_example
Navegue hasta el nuevo directorio del proyecto:
- cd charts_flutter_example
El uso flutter create
producirá 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_flutter
complemento 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.dart
en tu editor de código.
Reemplace todo en este archivo con un MaterialApp
que apunte a un HomePage
que 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.dart
archivo 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.dart
archivo 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 year
y subscribers
.
Paso 5: Creación de los datos
Para los fines de este tutorial, los datos se crearán dentro de HomePage
como ListSubscriberSeries
:
Revise home.dart
y 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.dart
archivo 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 StatelessWidget
nombre SubscriberChart
que toma el SubscriberSeries
como un prop
.
Luego podemos usar esto data
para construir nuestro proyecto charts.Series
así:
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 domainFn
y measureFn
se utilizan para comparar los subscribers
datos de ese year
.
También lo usamos colorFn
para pasar potencialmente un barColor
.
Recordemos cómo home.dart
se utiliza barColor
:
SubscriberSeries( year: "2008", subscribers: 10000000, barColor: charts.ColorUtil.fromDartColor(Colors.blue),),
Es posible que queramos hacer que la barColor
opció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 build
funció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.BarChart
rodearlo con un Card
.
Lo más importante a tener en cuenta es que estamos pasando series
como required
pará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.dart
tu editor de código y cambia build
para 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_flutter
un 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.
Deja una respuesta