Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在d3的路径中引入间隙_Javascript_D3.js - Fatal编程技术网

Javascript 在d3的路径中引入间隙

Javascript 在d3的路径中引入间隙,javascript,d3.js,Javascript,D3.js,我试图通过从文件中读取数据来使用d3js绘制路径。但是,其中也可能存在NaN值。所以,我需要在这些点的图中有一个间隙。假设有5个点1,2,3,4,5,我有1,2,4和5的值,但不是3。因此,应该有一条从1到2的路径,以及一条从4到5的路径 我遇到了一个为d3.line定义的访问器,它对line元素执行此操作。关于如何使用路径实现相同功能的任何想法 提前谢谢 PS:我正在尝试这样的事情: var selection = d3.select(this) .sele

我试图通过从文件中读取数据来使用d3js绘制路径。但是,其中也可能存在NaN值。所以,我需要在这些点的图中有一个间隙。假设有5个点1,2,3,4,5,我有1,2,4和5的值,但不是3。因此,应该有一条从1到2的路径,以及一条从4到5的路径

我遇到了一个为d3.line定义的访问器,它对line元素执行此操作。关于如何使用路径实现相同功能的任何想法

提前谢谢

PS:我正在尝试这样的事情:

var selection = d3.select(this)
                  .selectAll('.my-series')
                  .data(d);
selection.enter()
         .append('path');

我仍然不确定我是否理解这个问题,但我已经在下面编写了一个代码片段,演示了如何使用
d3.line的
defined
访问器。在此代码中,如果
d.x
d.y
包含值,d3将“分解”路径线段:


var svg=d3.select('body')
.append('svg')
.attr('width',200)
.attr('height',200);
var x=d3.scaleLinear()
.范围([0200])
.域([1,5]);
变量y=d3.scaleLinear()
.范围([0200])
.域([0,10]);
风险值数据=[
{
x:1,
y:Math.random()*10
},{
x:2,
y:Math.random()*10
},{
x:错,
y:错
},{
x:4,
y:Math.random()*10
},{
x:5,
y:Math.random()*10
}
];
var line=d3.line()
.x(功能(d){
返回x(d.x);
})
.y(功能(d){
返回y(d.y);
})
.已定义(功能(d){
返回d.y和d.x;
});
append('path')
.style('stroke','steelblue')
.style('笔划宽度',2)
.style('填充','无')
.attr('d',行(数据));

我仍然不确定是否理解这个问题,但我已经在下面编写了一个代码片段,演示如何使用
d3.line的
定义的
访问器。在此代码中,如果
d.x
d.y
包含值,d3将“分解”路径线段:


var svg=d3.select('body')
.append('svg')
.attr('width',200)
.attr('height',200);
var x=d3.scaleLinear()
.范围([0200])
.域([1,5]);
变量y=d3.scaleLinear()
.范围([0200])
.域([0,10]);
风险值数据=[
{
x:1,
y:Math.random()*10
},{
x:2,
y:Math.random()*10
},{
x:错,
y:错
},{
x:4,
y:Math.random()*10
},{
x:5,
y:Math.random()*10
}
];
var line=d3.line()
.x(功能(d){
返回x(d.x);
})
.y(功能(d){
返回y(d.y);
})
.已定义(功能(d){
返回d.y和d.x;
});
append('path')
.style('stroke','steelblue')
.style('笔划宽度',2)
.style('填充','无')
.attr('d',行(数据));

d3.line()
创建一个路径,而不是一个line元素。@GerardoFurtado那么d3.path做什么呢?
d3.path
用于画布。您使用的是canvas还是SVG?我使用的是SVG@GerardoFurtado我还编辑了这个问题来简要描述我要做的事情我仍然不理解您的问题:这句话
我遇到了一个为d3.line定义的访问器,它对line元素执行此操作。任何关于如何使用路径实现相同功能的想法都毫无意义。
d3.line
为svg
路径生成
d
属性。所以你的答案是做你已经在做的事情。
d3.line()
创建一个路径,而不是一个line元素。@GerardoFurtado那么d3.path做什么呢?
d3.path
是画布的。您使用的是canvas还是SVG?我使用的是SVG@GerardoFurtado我还编辑了这个问题来简要描述我要做的事情我仍然不理解您的问题:这句话
我遇到了一个为d3.line定义的访问器,它对line元素执行此操作。任何关于如何使用路径实现相同功能的想法都毫无意义。
d3.line
为svg
路径生成
d
属性。所以你的答案是做你已经在做的事情。