networkData method

Map<String, dynamic> networkData({
  1. int nodeCount = 20,
  2. double linkProbability = 0.1,
  3. int? groupCount,
})

Generates network graph data.

Implementation

Map<String, dynamic> networkData({
  int nodeCount = 20,
  double linkProbability = 0.1,
  int? groupCount,
}) {
  final groups = groupCount ?? (nodeCount / 5).ceil();

  final nodes = List.generate(
      nodeCount,
      (i) => {
            'id': 'node_$i',
            'label': 'Node $i',
            'group': 'Group ${i % groups}',
            'value': _random.uniform(5, 20),
          });

  final links = <Map<String, dynamic>>[];
  for (int i = 0; i < nodeCount; i++) {
    for (int j = i + 1; j < nodeCount; j++) {
      if (_random.boolean(linkProbability)) {
        links.add({
          'source': 'node_$i',
          'target': 'node_$j',
          'weight': _random.uniform(1, 5),
        });
      }
    }
  }

  return {
    'nodes': nodes,
    'links': links,
  };
}