Mostrando etiquetas a uma certa profundidade em um Javascript Infovis Toolkit Treemap

StackOverflow https://stackoverflow.com//questions/11701064

  •  13-12-2019
  •  | 
  •  

Pergunta

Eu estou criando um treemap com o Javascript Infovis Toolkit com 4 níveis (jogos Olímpicos > Esporte > > Evento > Medalhas) e estou querendo mostrar três de uma vez — mas apenas rótulos para 2/3.

(Por exemplo:Na vista superior, gostaria de mostrar todos os diferentes Esportes, e todos os eventos dentro do esporte, mas não os rótulos para os eventos, porque existem muitas).

Eu estou usando o seguinte código para tentar esconder os níveis, mas não un-esconde-los quando eu zoom.

onPlaceLabel: function(domElement, node){
    if (node._depth == 0) {console.dir(node);}
        if (node._depth > 1) {
            domElement.style.display = 'none';
        } else {
            domElement.style.display = '';          
        }
}

Parece que _depth não se altera quando você zoom in/out — é uma propriedade estática de cada nó.

Que eu seja capaz de escrever uma condicional que altera o nível de profundidade para mostrar com base na profundidade atual conjunto de nós como pai.Alguém sabe onde eu poderia encontrar que?

Obrigado!

Foi útil?

Solução

Percebi isso!O onBeforeComputer();método operações no nó selecionado antes de tudo é calculado.Veja abaixo o código:

//sets the selected node depth as the .currentParentDepth
onBeforeCompute : function(node){
    if (typeof this.currentParentDepth === "undefined") {
        this.currentParentDepth = 0;
    }
    else {
        this.currentParentDepth = node._depth; 
    }
},

onPlaceLabel: function(domElement, node){
    if (this.currentParentDepth == 0) {
        if (node._depth > 1) {
            domElement.style.display = 'none';
        } else {
            domElement.style.display = '';          
        }
    } else if (this.currentParentDepth == 1) {
        if (node._depth > 2) {
            domElement.style.display = 'none';
        } else {
            domElement.style.display = '';          
        }           
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top