Buscar pacotes, repositórios e categorias de apps

Capa de fl_heatmap
Detalhes do pacotev0.4.6

fl_heatmap

Um widget de mapa de calor para aplicativos Flutter com várias opções de estilização.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
3,5 mil
Curtidas
56
Pontos Pub
160

Instalar pacote

flutter pub add fl_heatmap

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

fl_heatmap é um pacote Flutter que fornece um widget de mapa de calor personalizável para visualizar dados em duas dimensões. Ele suporta várias opções de estilização, incluindo esquemas de cores, tamanho de células e personalização de rótulos, tornando-o ideal para exibir padrões de densidade ou frequência em conjuntos de dados. O widget se integra perfeitamente em aplicativos Flutter em múltiplas plataformas, oferecendo renderização suave e comportamento responsivo. É especialmente útil para painéis de análise, visualização de dados geográficos e mapas de calor de séries temporais. Desenvolvido com desempenho em mente, ele manipula grandes conjuntos de dados de forma eficiente, mantendo uma API limpa e intuitiva.

Casos de uso

  • visualização de densidade de dados
  • Painéis de análise
  • Representação de dados geoespaciais
  • Mapas de calor de séries temporais
  • Rastreamento de atividade do usuário

Principais recursos

  • Esquemas de cores personalizáveis
  • Tamanhos de célula configuráveis
  • Suporte para rótulos e dicas de ferramenta
  • design responsivo
  • Renderização eficiente para grandes conjuntos de dados
  • Compatibilidade multiplataforma

Indicado para

  • Desenvolvedores construindo recursos de visualização de dados
  • Equipes criando painéis analíticos
  • Aplicativos que exigem reconhecimento de padrões em dados
  • Ferramentas educacionais com gráficos interativos
  • Projetos envolvendo dados espaciais ou temporais

Considerações

  • Requer entendimento de estrutura de dados 2D
  • O desempenho pode variar com conjuntos de dados muito grandes
  • Interatividade embutida limitada além de dicas
  • As opções de estilo exigem configuração cuidadosa para a melhor aparência

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

fl_heatmap

A heatmap widget for Flutter apps.

heatmap electricity consumption

heatmap water consumption

Usage

1 - Depend on it

Add it to your package's pubspec.yaml file

dependencies:
  fl_heatmap: ^0.1.0
2 - Install it

Install packages from the command line

flutter packages get
3 - Use it

This is an example for the months of four years:

import 'package:fl_heatmap/fl_heatmap.dart';

class _ExampleState extends State<ExampleApp> {
  HeatmapItem? selectedItem;

  late HeatmapData heatmapData;

  @override
  void initState() {
    _initExampleData();
    super.initState();
  }

  void _initExampleData() {
    const rows = [
      '2022',
      '2021',
      '2020',
      '2019',
    ];
    const columns = [
      'Jan',
      'Feb',
      'Mär',
      'Apr',
      'Mai',
      'Jun',
      'Jul',
      'Aug',
      'Sep',
      'Okt',
      'Nov',
      'Dez',
    ];
    final r = Random();
    const String unit = 'kWh';
    heatmapData = HeatmapData(rows: rows, columns: columns, items: [
      for (int row = 0; row < rows.length; row++)
        for (int col = 0; col < columns.length; col++)
          HeatmapItem(
              value: r.nextDouble() * 6,
              unit: unit,
              xAxisLabel: columns[col],
              yAxisLabel: rows[row]),
    ]);
  }

  @override
  Widget build(BuildContext context) {
    final title = selectedItem != null
        ? '${selectedItem!.value.toStringAsFixed(2)} ${selectedItem!.unit}'
        : '--- ${heatmapData.items.first.unit}';
    final subtitle = selectedItem != null
        ? '${selectedItem!.xAxisLabel} ${selectedItem!.yAxisLabel}'
        : '---';
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Heatmap plugin example app'),
        ),
        body: SingleChildScrollView(
          child: Column(
            children: [
              const SizedBox(height: 16),
              Text(title, textScaleFactor: 1.4),
              Text(subtitle),
              const SizedBox(height: 8),
              Heatmap(
                  onItemSelectedListener: (HeatmapItem? selectedItem) {
                    debugPrint(
                        'Item ${selectedItem?.yAxisLabel}/${selectedItem?.xAxisLabel} with value ${selectedItem?.value} selected');
                    setState(() {
                      this.selectedItem = selectedItem;
                    });
                  },
                  rowsVisible: 5, // Only the first 5 rows are visible
                  heatmapData: heatmapData)
            ],
          ),
        ),
      ),
    );
  }
}

If necessary you can inherit from HeatmapItem and attach some payload, e.g. the electricity costs for the consumption:

class CustomHeatmapItem extends HeatmapItem {
  CustomHeatmapItem(
      {required this.costs,
      required double value,
      required String unit,
      required String xAxisLabel,
      required String yAxisLabel})
      : super(
            value: value,
            unit: unit,
            xAxisLabel: xAxisLabel,
            yAxisLabel: yAxisLabel);
  
  final double costs;
}

Features

  • Supporting custom color schemes with dynamic size or use predefined color palettes such as colorPaletteTemperature, colorPaletteRed, colorPaletteBlue.
  • x- and y-axis labels are completely dynamic
  • Do not show the x-axis/y-axis labels if necessary
  • Detect clicks on cells and get back the data item to show detailed information about the cell
  • Use different styles for the cells if necessary
  • Show only the first lines and user can request to show all

Apps using this plugin

EHW+ Your app?
EHW+ ...

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.