Javascript 无法在Qlik视图扩展对象窗口中为d3树贴图生成链接
我正在尝试创建一个Qlikview扩展对象来构建D3树形图。 下面是D3中树形图的链接 因此,我能够读取父节点和子节点,也能够在Qlikview对象窗口上绘制节点(点) 但是,在d3.v2.js/d3.js/d3.v3.min.js中调用d3.svg.diagonal()函数时,代码在生成链接时抛出错误 下面是脚本抛出错误的代码段Javascript 无法在Qlik视图扩展对象窗口中为d3树贴图生成链接,javascript,svg,d3.js,qlikview,Javascript,Svg,D3.js,Qlikview,我正在尝试创建一个Qlikview扩展对象来构建D3树形图。 下面是D3中树形图的链接 因此,我能够读取父节点和子节点,也能够在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]; });
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);
错误:“无法获取属性“y”的值:对象为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
您的数据看起来像什么?它是否具有
x
和y
属性?不,我的数据是一个简单的CSV文件:源、目标光斑、动画光斑、分析分析、群集分析、图形动画、序列动画、过渡动画、插值群集、聚集群集、hierarchicalCluster interpolator interpolator interpolator interpolator interpolator,colorInterpolator interpolator interpolator,dateinterpolator您需要将数据传递到如示例中所示的布局,以使其设置绘制所需的x
和y
属性。数据以与示例中所述相同的格式传递。当D3代码读取da时ta直接从CSV文件中读取,它运行良好,并在浏览器上提供输出。但当它从Qlikview读取相同的CSV数据文件时,会抛出上述错误。事实上,它在Qlikview扩展对象窗口上打印节点,该窗口的代码段中也有“d.x”和“d.y”,但问题仅限于链接。听起来像是您获得的数据两种情况下的ting是不同的。