Javascript 创建具有点的D3线图

Javascript 创建具有点的D3线图,javascript,d3.js,Javascript,D3.js,我正在尝试使用D3创建一个带有点的线图。我的数据存在于我正在引用的XML文件中。目前,我可以显示带有点的图形,但我想在它们之间添加线。这是我当前图表的图片 我曾尝试使用以下代码创建线条,但无法在图形上显示任何线条 .line { fill: none; stroke: steelblue; stroke-width: 1.5px; } //Define line var line = d3.svg.line() .x(function(d) { return d

我正在尝试使用D3创建一个带有点的线图。我的数据存在于我正在引用的XML文件中。目前,我可以显示带有点的图形,但我想在它们之间添加线。这是我当前图表的图片

我曾尝试使用以下代码创建线条,但无法在图形上显示任何线条

.line {
    fill: none;
    stroke: steelblue;
    stroke-width: 1.5px;
}

//Define line
var line = d3.svg.line()
    .x(function(d) { return d[0]; })
    .y(function(d) { return d[1]; });

//Draw line
svg.append("path")
    .datum(dataset)
    .attr("class", "line")
    .attr("d", line);
我使用这些代码行来传递我的数据,这与我创建圆圈的方式是一致的

//Create dataset
for(var i=0;i<record.length;i++)
{
    x = record[i].getElementsByTagName("date")[0].childNodes[0].nodeValue;
    y = y + 1;
    var newArray = [x, y];
    dataset.push(newArray);
}
//创建数据集

对于(var i=0;i来说,老实说,您几乎做到了!您刚刚错过了lineFunction。下面是一个关于JSFIDLE的示例:

//创建数据集
var数据集=[];
对于(变量i=0;i<7;i++){
x=50*i;//记录[i].getElementsByTagName(“日期”)[0].childNodes[0].nodeValue;
y=50*i+10;//y+1;
var newArray=[x,y];
push(newArray);
}
var lineFunction=d3.svg.line()
.x(函数(d){返回d[0];})
.y(函数(d){返回d[1];})
.插入(“线性”);
d3.选择(“svg”)
.append(“路径”)
.attr(“笔划”,“#333”)
.attr(“笔划宽度”,1.2)
.attr(“d”,lineFunction(数据集));

在附加path元素时,您应该直接将数据传递给行函数svg.append(“path”).attr(“class”,“line”).attr(“d”,line(dataset));最好让您的代码处于测试状态。谢谢,但不幸的是,当我尝试传递XML数据时,这似乎没有显示任何行。
//Create dataset
var dataset = [];
for(var i = 0; i < 7; i++) {
    x = 50 * i; // record[i].getElementsByTagName("date")[0].childNodes[0].nodeValue;
    y = 50 * i + 10; //y + 1;
    var newArray = [x, y];
    dataset.push(newArray);
}

var lineFunction = d3.svg.line()
.x(function(d) { return d[0]; })
.y(function(d) { return d[1]; })
.interpolate("linear");

d3.select("svg")
.append("path")
.attr("stroke", "#333")
.attr("stroke-width", 1.2)
.attr("d", lineFunction(dataset));