Javascript d3折线图不显示基于数据的教程

Javascript d3折线图不显示基于数据的教程,javascript,csv,d3.js,Javascript,Csv,D3.js,我的折线图没有显示数据有问题。我的代码是基于。我使用的是WebStorm,我的代码或Chrome中的开发工具中没有错误,所以我不知道哪里出了问题 代码: 使用静态数据时,您的代码似乎工作正常。因此,您应该确保数据在d3.csv方法中正确加载,并使用type函数正确转换 确保分析了date,并且users是一个聚合总和 编辑:尝试加载csv数据,如下所示 d3.csv("lineChart.csv", function(error, data) { data.forEach(functio

我的折线图没有显示数据有问题。我的代码是基于。我使用的是WebStorm,我的代码或Chrome中的开发工具中没有错误,所以我不知道哪里出了问题

代码:


使用静态数据时,您的代码似乎工作正常。因此,您应该确保数据在d3.csv方法中正确加载,并使用type函数正确转换

确保分析了
date
,并且
users
是一个聚合总和

编辑:尝试加载csv数据,如下所示

d3.csv("lineChart.csv", function(error, data) {
    data.forEach(function(d) {
      d.date = formatDate.parse(d.date);
      d.users = +d.users;
    });
    ---------------------
    ---------------------
});
var保证金={
前20名,
右:20,,
底数:30,
左:50
},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var formatDate=d3.time.format(“%d-%b-%y”);
var x=d3.time.scale()
.范围([0,宽度]);
变量y=d3.scale.linear()
.范围([高度,0]);
var xAxis=d3.svg.axis()
.比例(x)
.东方(“底部”);
var yAxis=d3.svg.axis()
.比例(y)
.东方(“左”);
var line=d3.svg.line()
.x(功能(d){
返回x(d.日期);
})
.y(功能(d){
返回y(d.users);
});
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
风险值数据=[{
“日期”:“2015年3月6日”,
“用户”:19
}, {
“日期”:“2015年3月11日”,
“用户”:12
}, {
“日期”:“2015年4月22日”,
“用户”:22
}, {
“日期”:“2015年4月29日”,
“用户”:32
}, {
“日期”:“2015年5月3日”,
“用户”:1
}, {
“日期”:“2015年5月6日”,
“用户”:9
}, {
“日期”:“2015年9月4日”,
“用户”:2
}, {
“日期”:“2015年9月8日”,
“用户”:13
}, {
“日期”:“2015年9月10日”,
“用户”:147
}, {
“日期”:“2015年9月21日”,
“用户”:4
}, {
“日期”:“2015年10月1日”,
“用户”:264
}, {
“日期”:“2015年10月4日”,
“用户”:114
}, {
“日期”:“2015年10月7日”,
“用户”:63
}, {
“日期”:“2015年10月12日”,
“用户”:79
}];
data.forEach(函数(d){
d、 date=formattate.parse(d.date);
d、 用户=+d用户;
});
警报(JSON.stringify(数据));
x、 域(d3)。范围(数据,函数(d){
返回日期;
}));
y、 域(d3)。范围(数据,函数(d){
返回d.users;
}));
svg.append(“g”)
.attr(“类”、“x轴”)
.attr(“变换”、“平移(0)”、“高度+”)
.呼叫(xAxis);
svg.append(“g”)
.attr(“类”、“y轴”)
.呼叫(yAxis);
追加(“路径”)
.基准(数据)
.attr(“类”、“行”)
.attr(“d”,行)
正文{
字体:10px无衬线;
}
.轴线路径,
.轴线{
填充:无;
行程:#000;
形状渲染:边缘清晰;
}
.线路{
填充:无;
笔画:钢蓝;
笔划宽度:1.5px;
}

问题可在CSV的标题行中找到。在列标题的正前方有一个空格字符
users

date, users
6-Mar-15,19
将此属性转换为包含空格字符的属性
d[“用户”]
。由于解析数据的对象中没有属性
users
,因此访问器函数
type(d)
+undefined
转换为
NaN
,并将该值分配给
d[“users”]

这符合下列规定:

2.CSV格式的定义
  • 在标题和每条记录中,可能有一条或多条记录 字段,用逗号分隔。每行应包含相同的内容 整个文件中的字段数空间被视为一部分 不应忽略的字段。字段中的最后一个字段 记录后面不能跟逗号 解决问题的方法很简单,只需从CSV中删除不需要的空格字符,而其余字符保持不变:

    date,users
    6-Mar-15,19
    

    我将如何转换它?我已经尝试了所有的方法,但似乎没有任何效果。我已经添加了一个带有转换数据的警报。将您的数据与相同的数据进行比较。它是相同的,但我需要能够导入csv文件。是的,我理解。检查您在d3.csv函数中获得的数据是否与上面警告的数据相同。在那种情况下应该行得通。并重新检查添加的样式。
    date, users
    6-Mar-15,19
    
    date,users
    6-Mar-15,19