小编Jak*_*vec的帖子

D3.js设置初始缩放级别

我设置了几个图表来放大容器,效果很好.但是,在初始加载时,缩放级别太接近了.有没有设置初始缩放级别的方法,以避免必须先缩小?我熟悉这个.scale()方法,但没有任何运气实现它.这是要走的路还是我缺少的东西?

这是我到目前为止有关缩放的内容:

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(" …
Run Code Online (Sandbox Code Playgroud)

javascript zoom d3.js

31
推荐指数
5
解决办法
2万
查看次数

D3:用d3.svg.line()代替d3.svg.diagonal()

我用d3.svg.diagonal()渲染了边缘,实现了下图.但是,当我尝试用d3.svg.line()替换对角线时,它似乎不会拉动目标和源数据.我错过了什么?关于d3.svg.line有什么我不懂的吗?

在此输入图像描述

以下是我所指的代码,后面是完整代码:

var line = d3.svg.line()
    .x(function(d) { return d.lx; })
    .y(function(d) { return d.ly; });
Run Code Online (Sandbox Code Playgroud)

...

var link= svg.selectAll("path")
    .data(links)
  .enter().append("path")
    .attr("d",d3.svg.diagonal())
    .attr("class", ".link")
    .attr("stroke", "black")
    .attr("stroke-width", "2px")
    .attr("shape-rendering", "auto")
    .attr("fill", "none"); 
Run Code Online (Sandbox Code Playgroud)

整个代码:

var margin = {top: 20, right: 20, bottom: 20, left: 20},
    width =1500, 
    height = 1500, 
    diameter = Math.min(width, height),
    radius = diameter / 2;


var balloon = d3.layout.balloon()
  .size([width, height])
  .value(function(d) { return d.size; })
  .gap(50)                  

var line = d3.svg.line()
    .x(function(d) { return d.lx; }) …
Run Code Online (Sandbox Code Playgroud)

javascript svg d3.js circle-pack

17
推荐指数
2
解决办法
1万
查看次数

d3.js缩放仅在光标在图像的像素上时起作用

我试图以最简单,最基本的方式在树形图上实现缩放功能,并使其工作.唯一的问题是缩放事件仅在光标位于边,节点或文本上时才有效.当光标位于svg的任何部分时,如何允许缩放?

var margin = {top: 20, right: 120, bottom: 20, left: 120},
    width = 2000 - margin.right - margin.left,
    height = 2000 - 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.y, d.x]; });

var svg = d3.select("body").append("svg")
    .attr("width", width + margin.right …
Run Code Online (Sandbox Code Playgroud)

javascript svg d3.js

6
推荐指数
1
解决办法
1087
查看次数

标签 统计

d3.js ×3

javascript ×3

svg ×2

circle-pack ×1

zoom ×1