【问题标题】:d3.js force piechart nodesd3.js 强制饼图节点
【发布时间】:2017-08-27 01:09:32
【问题描述】:

我对制作这种力饼图混合体很感兴趣。我已经尝试将这两个图表合并在一起 - 为饼图模块创建一个占位符。

//饼图 http://jsfiddle.net/Qh9X5/10111/

//力图 http://jsfiddle.net/Qh9X5/10110/

//合并图表尝试1 http://jsfiddle.net/Qh9X5/10114/

//合并图表尝试 2 - 最新 http://jsfiddle.net/k0pn3x5o/3/

  var datajson = {
    "name": "parentnode",
    "children": [{
      "name": "A",
      "children": [{
        "name": "Cherry",
        "size": 3938
      }, {
        "name": "Apple",
        "size": 3812
      }, {
        "name": "Banana",
        "size": 6714
      }]
    }, {
      "name": "B",
      "children": [{
        "name": "Strawberry",
        "size": 3938
      }, {
        "name": "Apricot",
        "size": 3812
      }]
    }]
  };

【问题讨论】:

  • 使用强制节点——我是否需要将一组节点重新创建为 g 元素,其中嵌套了圆圈——然后挂钩到父 g 元素节点作为占位符? -- jsfiddle.net/Qh9X5/10116
  • jsfiddle.net/Qh9X5/10117 -- 我尝试将节点嵌套为 g 元素 - 但现在图表正在分解 -

标签: javascript d3.js


【解决方案1】:

您只需要使用正确的节点元素并正确更新它们。

使用g 作为节点,然后将您想要的任何内容放入其中。

 node.enter().append("g")
    .attr("class", "node")
    .attr('transform', d => ("translate(" + d.x + "," + d.y + ")"))
    //Insert pie chart here.

在 tick 函数中,您只需更新外部 g 位置即可使其布局正确。

node.attr('transform', d => ("translate(" + d.x + "," + d.y + ")"));

http://jsfiddle.net/k0pn3x5o/

【讨论】:

猜你喜欢
  • 2013-10-17
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 2016-08-15
  • 2013-06-12
  • 1970-01-01
  • 2015-02-17
  • 1970-01-01
相关资源
最近更新 更多