Gráfico de Rede: Topologia de Rede e Mapeamento de Relacionamentos

Ao mapear redes interconectadas, hierarquias estruturais ou relacionamentos complexos entre entidades, o Gráfico de Rede (ou Gráfico de Rede) é o framework visual ideal. Ao exibir itens como nós e conexões como links direcionados ou não direcionados, os gráficos de rede permitem que os usuários explorem clusters, árvores de dependência e fluxos relacionais que os gráficos tabulares padrão não conseguem transmitir — como arquiteturas de microserviços, interações em redes sociais ou grafos de conhecimento.

Os Mecanismos dos Gráficos de Rede

No Apache ECharts, os gráficos de rede usam type: 'graph'. Em vez de mapear valores numéricos diretamente para coordenadas horizontais e verticais, um gráfico de rede utiliza uma coleção explícita de nós (ou data) e links (ou arestas). O ECharts então organiza esses nós usando posições de coordenadas fixas, layouts circulares ou um motor físico dinâmico baseado em força direcionada.

1. Configuração Básica

Para criar um gráfico de rede básico usando física direcionada por força, declare seus nós dentro de data, mapeie as conexões dentro de links, e defina layout: 'force':

option = {
    tooltip: {},
    legend: {
        data: ['Serviços', 'Bancos de Dados']
    },
    series: [
        {
            name: 'Rede do Sistema',
            type: 'graph',
            layout: 'force',
            roam: true, // Permite zoom e rolagem
            label: {
                show: true,
                position: 'right'
            },
            force: {
                repulsion: 100,
                edgeLength: 80
            },
            data: [
                { id: '0', name: 'API Gateway', symbolSize: 30, category: 0 },
                { id: '1', name: 'Serviço de Autenticação', symbolSize: 20, category: 0 },
                { id: '2', name: 'Serviço de Pedidos', symbolSize: 20, category: 0 },
                { id: '3', name: 'Banco de Dados de Usuários', symbolSize: 25, category: 1 },
                { id: '4', name: 'Banco de Dados de Pedidos', symbolSize: 25, category: 1 }
            ],
            links: [
                { source: '0', target: '1' },
                { source: '0', target: '2' },
                { source: '1', target: '3' },
                { source: '2', target: '4' }
            ],
            categories: [
                { name: 'Serviços' },
                { name: 'Bancos de Dados' }
            ]
        }
    ]
};

 

Técnicas Estruturais Avançadas

Gráficos de rede suportam motores de layout alternativos, como alinhamento em anel circular ou setas direcionais, para mostrar dependências de dados de forma clara.

1. Layout Circular com Setas de Ligação Direcionadas

Defina layout: 'circular' para organizar os nós em uma estrutura circular limpa e habilitar setas nas arestas para mostrar relações direcionais entre os componentes:

option = {
    tooltip: {},
    series: [
        {
            type: 'graph',
            layout: 'circular',
            roam: true,
            label: {
                show: true,
                position: 'outside'
            },
            edgeSymbol: ['none', 'arrow'], // Desenhar setas nos pontos finais das ligações
            edgeSymbolSize: [0, 8],
            data: [
                { id: 'A', name: 'Nó A', symbolSize: 24 },
                { id: 'B', name: 'Nó B', symbolSize: 24 },
                { id: 'C', name: 'Nó C', symbolSize: 24 },
                { id: 'D', name: 'Nó D', symbolSize: 24 },
                { id: 'E', name: 'Nó E', symbolSize: 24 }
            ],
            links: [
                { source: 'A', target: 'B' },
                { source: 'B', target: 'C' },
                { source: 'C', target: 'D' },
                { source: 'D', target: 'E' },
                { source: 'E', target: 'A' },
                { source: 'A', target: 'C' }
            ],
            lineStyle: {
                color: '#5470c6',
                width: 2,
                curveness: 0.2 // Curvar as linhas de conexão para evitar sobreposição
            }
        }
    ]
};

 

Ajuste Fino do Layout e Estilo dos Nós

Ajustar a curvatura das arestas, sombras na borda dos nós e opções de interação mantém os agrupamentos densos de rede legíveis em páginas web interativas.

1. Cores Personalizadas por Categoria de Nós e Física de Força

Ajuste os valores de repulsão e os estilos de linha para criar agrupamentos estruturados e visualmente separados:

option = {
    legend: {
        top: '5%',
        left: 'center'
    },
    series: [
        {
            type: 'graph',
            layout: 'force',
            roam: true,
            draggable: true,
            force: {
                repulsion: 250,
                gravity: 0.1,
                edgeLength: [50, 100]
            },
            categories: [
                { name: 'Frontend', itemStyle: { color: '#5470c6' } },
                { name: 'Backend', itemStyle: { color: '#91cc75' } },
                { name: 'Infraestrutura', itemStyle: { color: '#fac858' } }
            ],
            data: [
                { name: 'Aplicativo Web', category: 0, symbolSize: 32 },
                { name: 'Aplicativo Móvel', category: 0, symbolSize: 28 },
                { name: 'Gateway de API', category: 1, symbolSize: 26 },
                { name: 'Microserviço A', category: 1, symbolSize: 22 },
                { name: 'Microserviço B', category: 1, symbolSize: 22 },
                { name: 'Cache Redis', category: 2, symbolSize: 20 },
                { name: 'PostgreSQL', category: 2, symbolSize: 24 }
            ],
            links: [
                { source: 'Aplicativo Web', target: 'Gateway de API' },
                { source: 'Aplicativo Móvel', target: 'Gateway de API' },
                { source: 'Gateway de API', target: 'Microserviço A' },
                { source: 'Gateway de API', target: 'Microserviço B' },
                { source: 'Microserviço A', target: 'Cache Redis' },
                { source: 'Microserviço B', target: 'PostgreSQL' }
            ],
            lineStyle: {
                color: 'source', // Cor da aresta com base na cor do nó de origem
                width: 2,
                curveness: 0.1
            }
        }
    ]
};

 

Melhores Práticas Estratégicas

  • Habilite roam: true para navegação:Redes interativas crescem rapidamente. Habilitar a navegação com zoom e deslocamento permite que os usuários se concentrem em agrupamentos específicos sem se sentirem sobrecarregados.
  • Aplique curvatura às arestas:Definir uma leve curvatura (por exemplo, lineStyle.curveness: 0.1 a 0.2) evita que links bidirecionais entre dois nós idênticos se sobreponham em uma única linha.
  • Repulsão da Física da Força de Equilíbrio: Ajuste force.repulsion com cuidado. Valores muito baixos farão com que os nós se sobreponham formando um agrupamento denso, enquanto valores muito altos empurrarão os nós completamente fora da área visível.
Scroll to Top