Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

186
Visualizações
networkD3 in R -> Set Initial Zoom in forceNetwork()

I am dealing with a big network (1k + nodes, 1M+ connections) and I would like to set a custom initial zoom, since the standard zoom only focusses a few nodes and takes a lot of time to achieve de aimed proportion (where I can see the whole network).

Here is my code:

library(networkD3)

p <- forceNetwork(Links = links, 
                  Nodes = nodes, 
                  Source = 'source', 
                  Target = 'target', 
                  NodeID = 'name',
                  Group = 'group', 
                  Value = "value",
                  Nodesize = "size",
                  radiusCalculation = JS("d.nodesize"),
                  zoom = TRUE, 
                  arrows = FALSE,
                  linkWidth = JS("function(d){return d.value;}"),
                  linkDistance = JS("function(d){return d.value*10}"),
                  charge = gravity,
                  opacity = 0.95,
                  fontSize = 24,
                  linkColour = "#424242"
)

customJS <- 
  "function() { 
    d3.selectAll('.node text').style('fill', 'white').attr('stroke-width', '.1px').attr('stroke', '#3f3f3f');
    d3.select('body').style('background-color', '#15171a');
    simulation = this;
    simulation.stop();
    for (var i = 0; i < 300; ++i) simulation.tick();
    simulation.nodes().forEach( function(d,i) {
      d.cx = d.x;
      d.cy = d.y;
    });
    simulation.restart();
  }"


g <- htmlwidgets::onRender(p, customJS)
g
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Here's a minimized, reproducible example of setting a scale value on render...

library(networkD3)

p <- forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
            Target = "target", Value = "value", NodeID = "name",
            Group = "group", opacity = 0.4, zoom = TRUE)

customJS <- 
  'function(el) { 
     d3.select(el).select(".zoom-layer").attr("transform", "scale(0.3)")
  }'


htmlwidgets::onRender(p, customJS)
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda