无法在Qlik View Extension对象窗口中生成d3树图的链接

时间:2014-12-05 13:42:03

标签: javascript svg d3.js qlikview

我正在尝试创建一个Qlikview扩展对象来构建D3树图表。 下面是D3中树形图的链接     https://gist.github.com/mbostock/2949981

因此,我能够读取父节点和子节点,并且还能够在Qlikview对象窗口上绘制节点(点)。

但是,当在d3.v2.js / d3.js / d3.v3.min.js中调用d3.svg.diagonal()函数时,代码在生成链接时抛出错误

以下是我的脚本会抛出错误的代码段。

var diagonal = d3.svg.diagonal().projection(function(d) { return [d.y, d.x]; });


// Create the link lines.
  svg.selectAll(".link")
  .data(links)
  .enter().append("path")
  .attr("class", "link")  
  .attr("d", diagonal);     

错误:"无法获取属性的值':对象为null或未定义

下面是d3.v2.js中的对角线函数,其中第3行引发了错误

d3.svg.diagonal = function() {
function diagonal(d, i) {
  var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
    x: p0.x,
    y: m
  }, {
    x: p3.x,
    y: m
  }, p3 ];
  p = p.map(projection);
  return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
}
var source = d3_svg_chordSource, target = d3_svg_chordTarget, projection = d3_svg_diagonalProjection;
diagonal.source = function(x) {
  if (!arguments.length) return source;
  source = d3_functor(x);
  return diagonal;
};
diagonal.target = function(x) {
  if (!arguments.length) return target;
  target = d3_functor(x);
  return diagonal;
};
diagonal.projection = function(x) {
  if (!arguments.length) return projection;
  projection = x;
  return diagonal;
};
return diagonal;
};

请帮助

这是我使用过的数据。它是一个简单的.csv文件,没有x,y值:

source,target
flare,animate
flare,analytics
analytics,cluster
analytics,graph
animate,sequence
animate,transition
animate,interpolate
cluster,agglomerativeCluster
cluster,hierarchicalCluster
interpolate,arrayInterpolator
interpolate,colorInterpolator
interpolate,dateInterpolator

0 个答案:

没有答案