javascript Zoomable Treemap#d3.v4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Zoomable Treemap#d3.v4相关的知识,希望对你有一定的参考价值。
var self = null,
margin = {top: 20, right: 0, bottom: 0, left: 0},
width = 100, // % of the parent element
height = 65,
x = d3.scaleLinear().domain([0, width]).range([0, width]),
y = d3.scaleLinear().domain([0, height]).range([0, height]),
node,
nodes = 0,
cell = 0;
var blue = d3.hsl(216, 0.92, 0.68),
color = d3.scaleOrdinal()
.range([
d3.rgb(blue).brighter([0.25]),
d3.rgb(blue),
d3.rgb(blue).darker([0.25])
]
.map(function(c) { c = d3.rgb(c); return c; })
);
var formatNumber = d3.format(",d");
function sumByCount(d) {
return d.children ? 0 : 1;
}
function sumBySize(d) {
return d.size;
}
var treemap = d3.treemap()
.size([width, height])
.tile(d3.treemapBinary)
.paddingInner(0)
.round(true);
var graph = d3.select("#tree_2");
loadTreemap(data);
function loadTreemap(data){
var root = d3.hierarchy(data)
.eachBefore(function(d) { d.data.id = (d.parent ? d.parent.data.id + "." : "") + d.data.Name; })
.sum(sumBySize)
.sort(function(a, b) { return b.height - a.height || b.value - a.value; });
treemap(root);
graph.selectAll(".node").remove();
graph.append('div')
.attr("class", "table_head")
.on("mousedown touchstart", function(d) { loadTreemap(root.data); })
.text(function(d) { return root.data.Name ? root.data.Name : root.id; });
var cell = graph.selectAll(".node")
.data(root.descendants()) // .leaves()
.enter()
.append("div")
.attr("class", function(d) { return "node level-" + d.depth; })
.attr("title", function(d) { return d.data.Name ? d.data.Name : "null"; });
cell
.style("left", function(d) { return Math.round(x(d.x0)) + "%"; })
.style("top", function(d) { return Math.round(y(d.y0)) + "%"; })
.style("width", function(d) { return x(d.x1 - d.x0) + "%"; })
.style("height", function(d) { return y(d.y1 - d.y0) + "%"; })
.style("background-color", function(d) { while (d.depth > 1) d = d.parent; return color(d.data.Name); })
.on("mousedown touchstart", function(d) { loadTreemap(d.data); })
.append("p")
.attr("class", "label")
.text(function(d) { return d.data.Name ? d.data.Name : "null"; });
}
以上是关于javascript Zoomable Treemap#d3.v4的主要内容,如果未能解决你的问题,请参考以下文章
这可能吗:Zoomable SVG Image Map
如何通过更新json数据更新D3 Zoomable旭日形轮视图
放大二维 UICollectionView
Map排序
TreeMap树映射取出对象的方式
mysql索引顶层实现原理