Tworzenie niestandardowego układu d3

Muszę stworzyć niestandardowy układ d3, który jest nieco zbliżony do treemap, ale w stylu trójkątnym. Oto zrzut ekranu, dzięki któremu możesz zrozumieć: Układ piramidy

Jak widać, działa całkiem porządnie i pasuje do moich potrzeb. Aby go zakodować, oparłem kod na kodzie układu treemap:

d3.layout.pyramid= function () {
    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = 0;

    function populate (nodes, currentHeight, currentHeightPadded, currentBase, currentSumedWeight) {
       ...
    }

    function populate_layers (layer, nodes,currentHeight,currentLength, currentSumedArea,currentSumedWeight) {
       ...
    }

    function pyramid(d) {
       var nodes = hierarchy(d), root = nodes[0];

       populate(root.children.slice(),0,0,0,0);
       return nodes;
    }  

    pyramid.padding = function(x) {
       if (!arguments.length) return padding;
       padding = x;
       return pyramid;
    };

    pyramid.size = function(x) {
       if (!arguments.length) return size;
       size = x;
       return pyramid;
    };

    return d3_layout_hierarchyRebind(pyramid, hierarchy);
};

Mój problem polega na tym, że musiałem bezpośrednio edytowaćd3.v2.js plik, ponieważ w moim przypadku niektóre funkcje prywatne nie są dostępne z zewnątrzd3_layout_hierarchyRebind. Najwyraźniej wiem, że nie jest to najlepsza praktyka, ale nie mogę udostępnić mojego pliku w oddzielnej przyczynie skryptud3_layout_hierarchyRebindis niewidoczny z zewnątrz.

Nie wiem, czy jest to problem związany z d3 lub javascript, ale chciałbym wiedzieć, czy mógłbyś mi pomóc rozwiązać ten mały problem.

Z góry dziękuję!

questionAnswers(1)

yourAnswerToTheQuestion