function initializeNodeDepth(nodes, nodesByBreadth, edges, height, nodeGap) {
	        var kyArray = [];
	        zrUtil.each(nodesByBreadth, function (nodes) {
	            var n = nodes.length;
	            var sum = 0;
	            zrUtil.each(nodes, function (node) {
	                sum += node.getLayout().value;
	            });
	            var ky = (height - (n - 1) * nodeGap) / sum;
	            kyArray.push(ky);
	        });

	        kyArray.sort(function (a, b) {
	            return a - b;
	        });
	        var ky0 = kyArray[0];

	        zrUtil.each(nodesByBreadth, function (nodes) {
	            zrUtil.each(nodes, function (node, i) {
	                node.setLayout({y: i}, true);
	                var nodeDy = node.getLayout().value * ky0;
	                node.setLayout({dy: nodeDy}, true);
	            });
	        });

	        zrUtil.each(edges, function (edge) {
	            var edgeDy = +edge.getValue() * ky0;
	            edge.setLayout({dy: edgeDy}, true);
	        });
	    }
the array to be grouped by.
@param {Array} array