javascript - 在 d3 中使用气泡图时出现问题

标签 javascript d3.js charts

我正在开发和使用的东西需要一个气泡图 http://bl.ocks.org/mbostock/4063269举个例子。我的数据将以平面格式输入,因此我不需要处理节点树并将其展平,因此我删除了该部分。

问题是,在删除它并简化其余部分之后,它似乎对数据没有做任何事情。我猜我的数据格式不正确,但我不确定。

http://tributary.io/inlet/b54cdb7104c40b1d7df3 我在运行时没有遇到任何错误,但我显然必须在这里遗漏一些东西,对吗?

最佳答案

即使您的数据是平坦的,包布局也期望 hierarchical data 。您必须为其提供至少一个根节点的:

var json = {
  "data": {
    "children": [{ //<-- needs a child...
      "name": "test",
      "value": 55
    }, {
      "name": "test2",
      "value": 34
    }]
  }
}; 
<小时/>

完整代码:

<!DOCTYPE html>
<html>

<head>
  <script data-require="d3@3.5.3" data-semver="3.5.3" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.js"></script>
</head>

<body>
  <script>
    var json = {
      "data": {
        "children": [{
          "name": "test",
          "value": 55
        }, {
          "name": "test2",
          "value": 34
        }]
      }
    };

    var diameter = 960,
      format = d3.format(",d"),
      color = d3.scale.category20c();

    var bubble = d3.layout.pack()
      .sort(null)
      .size([diameter, diameter])
      .padding(1.5);

    var svg = d3.select("body").append("svg")
      .attr("width", diameter)
      .attr("height", diameter)
      .attr("class", "bubble");


    var node = svg.selectAll(".node")
      .data(bubble.nodes(json.data))
      .enter().append("g")
      .attr("class", "node")
      .attr("transform", function(d) {
        return "translate(" + d.x + "," + d.y + ")";
      });

    node.append("title")
      .text(function(d) {
        return d.name + ": " + format(d.value);
      });

    node.append("circle")
      .attr("r", function(d) {
        return d.r;
      })
      .style("fill", function(d) {
        return color(d.name);
      });

    node.append("text")
      .attr("dy", ".3em")
      .style("text-anchor", "middle")
      .text(function(d) {
        return d.name;
      });
  </script>
</body>

</html>

关于javascript - 在 d3 中使用气泡图时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34341036/

相关文章:

javascript - 类型错误 : Cannot convert undefined or null to object (referring to Object. 键)

javascript - 如何让所有已完成的任务在函数调用时清除?

javascript - 当 x 值不完全匹配时,如何使用 d3.js 将多个折线图正确聚合/分组为一个总体图?

javascript - 事件处理程序关闭中 d3.js 键控连接的内存泄漏

javascript - canvasjs x 轴标签显示组合图表中的 y 轴索引

javascript - LineWidth 不改变谷歌图表

javascript - 浏览器缓存 - 版本控制文件 - 但如果浏览器使用旧版本怎么办?

javascript - 用 Dart 可视化?

colors - 谷歌图表颜色

javascript - HTML 选择值访问变量