【问题标题】:Tree diagram: multiple on one page树形图:一页上多个
【发布时间】:2012-09-23 18:10:49
【问题描述】:

我正在尝试放置 2 个 d3.js 树图,如此处所示http://bl.ocks.org/1249394 在一页上。两棵树都将加载来自 Javascript 对象的不同数据。第一个将出现在:

<div id="chart"></div>

第二棵树将被加载:

<div id="chart2"></div>

#chart 和 #chart2 在同一页面上,第一棵树 (#chart) 出现在页面顶部,第二棵树 (#chart2) 位于其下方,因为这就是图表 div 的排列方式.为此,我两次应用了来自http://bl.ocks.org/1249394 的相同代码。每个 div 一个,两段代码之间的唯一区别是树的位置,即树 1:#chart 和树 2:#chart2。

树 1:

var vis = d3.select("#chart").append("svg:svg")

树 2:

var vis = d3.select("#chart2").append("svg:svg")

其他一切都保持不变,包括变量和函数名称。 这很好用,两个图表都按原样显示,除了点击功能(代码中的最后一个功能:)只有第二棵树能够在点击树节点时折叠和展开,第一棵树不再能够这样做这个,第一个不再是交互式的。

我该如何解决这个问题?

【问题讨论】:

    标签: javascript d3.js tree-structure


    【解决方案1】:

    当您绘制交互所依赖的第二棵树时,您将覆盖vis 变量。如果要创建多个图表,则需要创建一个闭包,以便每棵树都在自己的范围内。这样他们就不会互相干扰了。

    Mike 在http://bost.ocks.org/mike/chart/ 上写了一篇关于创建可重用图表的好文章。他介绍了如何创建闭包和曲面属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 2014-10-06
      • 2021-11-14
      • 1970-01-01
      相关资源
      最近更新 更多