Konteynırı büyütmek için birkaç grafik hazırladım ve harika çalışıyor. Bununla birlikte, ilk yükte, yakınlaştırma seviyesi çok yakın. İlk uzaklaştırma düzeyine sahip olmaktan kaçınmak için ilk yakınlaştırma seviyesini ayarlama yöntemi var mı? .scale()
yöntemine aşinayım, ancak bunu uygulayan hiçbir şansım olmadı. Gidecek ya da eksik olduğum bir şey mi var? Sonunda ilk dönüşümü hem ve aynı değere yakınlaştırma davranışını ayarlayarak çalışmak bu varD3.js Başlangıçtaki yakınlaştırma seviyesini ayarla
var margin = {top: 20, right: 120, bottom: 20, left: 120},
width = 50000 - margin.right - margin.left,
height = 120000 - margin.top - margin.bottom;
var x = d3.scale.linear()
.domain([0, width])
.range([0, width]);
var y = d3.scale.linear()
.domain([0, height])
.range([height, 0]);
var tree = d3.layout.tree()
.size([height, width])
.separation(function(a, b) { return (a.parent == b.parent ? 1 : 2)/a.depth; });
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.x, d.y]; });
function zoom(d) {
svg.attr("transform",
"translate(" + d3.event.translate + ")"+ " scale(" + d3.event.scale + ")");
}
var svg = d3.select("body").append("svg")
.attr("width", width + margin.right + margin.left)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.attr("pointer-events", "all")
.call(d3.behavior.zoom()
.x(x)
.y(y)
.scaleExtent([0,8])
.on("zoom", zoom))
.append('g');
svg.append('rect')
.attr('width', width*5)
.attr('height', height)
.attr('border-radius', '20')
.attr('fill', 'sienna');
SVG sizin zum için 'scale' dönüşümü kullandığınız için, neden statik bir ölçek değeri değil, istediğiniz yakınlaştırma düzeyini verir? –
Bu harika görünüyor!Bunu nasıl yaparım? –
Lars, ölçek değeri tam olarak nasıl ayarlanır? –