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

115
Visualizações
Árbol de carámbanos de derecha a izquierda

¿Cómo puedo reflejar el árbol d3? He usado este código https://observablehq.com/@d3/zoomable-icicle pero no puedo poner al padre a la derecha. Creo que es attr("transform", d => translate(${d.y0},${d.x0})) y probé la función

 positions(d){ console.log(d.depth) if (d.depth == 0){ d = d.children[0].children[0].children[0]; return (d.x0); } else if(d.depth == 1){ d = d.children[0]; return (d.x0); } else if(d.depth == 2){ d = d.parent; return (d.x0); } else{ return 0; } }

Pero no funciona.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Aquí hay un ejemplo .

Podemos definir una función para obtener la posición horizontal reflejada:

 function getFlippedPosition(d) { return width - ((d.depth + 1) * (d.y1 - d.y0)); }

Entonces la creación de los grupos se convierte en

 const cell = svg .selectAll("g") .data(root.descendants()) .join("g") .attr("transform", d => `translate(${getFlippedPosition(d)},${d.x0})`)

De manera similar, la función en la que se clicked se puede actualizar de la siguiente manera:

 function clicked(event, p) { focus = focus === p ? p = p.parent : p; root.each(d => d.target = { x0: (d.x0 - p.x0) / (p.x1 - p.x0) * height, x1: (d.x1 - p.x0) / (p.x1 - p.x0) * height, y0: d.y0 - p.y0, y1: d.y1 - p.y0, // this line is new: depth: d.depth - p.depth, }); const t = cell.transition().duration(750) // this line is updated: .attr("transform", d => `translate(${getFlippedPosition(d.target)},${d.target.x0})`) rect.transition(t).attr("height", d => rectHeight(d.target)); text.transition(t).attr("fill-opacity", d => +labelVisible(d.target)); tspan.transition(t).attr("fill-opacity", d => labelVisible(d.target) * 0.7); }
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