如何将html数据映射到d3?

时间:2014-11-29 20:35:20

标签: d3.js

在d3.js中,我经常有如下数据:

 nodes = [
    {x: 30, y: 50},
    {x: 50, y: 80},
    {x: 90, y: 120}
  ]

现在我想从div标签中获取数据(不在js / coffee中实例化) HTML代码可能如下所示:

<div id="nodes">
  <div class="node" data-x="30" data-y="50"></div>
  <div class="node" data-x="50" data-y="80"></div>
  <div class="node" data-x="90" data-y="120"></div>
</div>

我正在寻找类似下面的东西(当然实际上是在工作):

  nodes = d3.selectAll(".node")

更改我的HTML格式是没问题的。我想避免使用外部 json文件。

1 个答案:

答案 0 :(得分:0)

在你的帮助下,我最终得到以下信息: (rails-)html将数据传输给用户:

<%= content_tag "div", class: "graph", data: { nodes: @nodes, links: @links} do %>

coffeescript与jquery访问数据:

nodesD = $('.graph').data('nodes')

rails controller来创建数据:

@neo_servers.each do |neo|
      @nodes << {x: x, y: y, name: neo['server']['data']['name']}
      x += 10; y += 2
end

最后返回一个漂亮的图表:)

正如提议的那样,我使用了jquery和d3,它们很强大。 jquery获取数据,d3修改并可视化。

希望这有助于将来。

enter image description here