2

I am doing visualization with the JavaScript InfoVis Toolkit, in particular the hypertree. I am loading data dynamically and sometimes the labels around the nodes overlap and clutter. I would like to avoid this clutter by altering the label positions.

Here is an example of cluttering (the top and bottom nodes):

JavaScript InfoVis Toolkit clutter

I imagine that I would loop through each x,y coordinate, give it some bounding box and do basic collision detection, and update positions accordingly.

For this library, I see the demo shows a onPlaceLabel() function, but (if I understand correctly) at that moment I wouldn't know the position of every other node's label. So, I am looking at onComplete(), where I see I can access each node as follows:

onComplete: function(){
     ht.graph.eachNode(function(n) {
        console.log(n);
    }
}

But the node information does not include its label positions, only their positions relative to the center node. Is there a way to access the labels in this way and be able to update their positions?

Aaron
  • 1,693
  • 4
  • 26
  • 40

0 Answers0