Javascript Can';t使用D3.JS时加载TSV
我需要在斜坡图中可视化TSV文件,其中包含国家、日期和百分比。接下来,我需要使用一个CSV文件来完成另一项任务,坦率地说,它加载时没有任何问题,但我坚持这个文件已经超过1.5天了,我就是想不出来 我已经编写了一个基本代码,只是为了测试是否可以显示TSV文件中的一些文本。另外,在检查chrome浏览器中的元素时,我没有看到SVG容器。我真的很想在这个问题上得到一些帮助Javascript Can';t使用D3.JS时加载TSV,javascript,csv,d3.js,Javascript,Csv,D3.js,我需要在斜坡图中可视化TSV文件,其中包含国家、日期和百分比。接下来,我需要使用一个CSV文件来完成另一项任务,坦率地说,它加载时没有任何问题,但我坚持这个文件已经超过1.5天了,我就是想不出来 我已经编写了一个基本代码,只是为了测试是否可以显示TSV文件中的一些文本。另外,在检查chrome浏览器中的元素时,我没有看到SVG容器。我真的很想在这个问题上得到一些帮助 var container = d3.select("body").append("svg")
var container = d3.select("body").append("svg")
.attr("width", 500)
.attr("height", 500);
d3.tsv("18-year-olds-in-education.tsv", function(error, data) {
data.forEach(function(d) {
d.indic_ed,geo\time = d.indic_ed,geo\time;
d.2001 = +d.2001
d.2012 = +d.2012;
});
var text = container.selectAll("text")
.data(data)
.enter()
.append("text");
var textLabels = text
.attr("x", 200)
.attr("y", 200)
.text(function(d) { return d.2012)
.attr("font-family", "sans-serif")
.attr("font-size", "20px")
.attr("fill", "red");
});
问题是您在TSV中使用的字段名。特别是,以下代码不是有效的Javascript:
d.indic_ed,geo\time = d.indic_ed,geo\time;
d.2001 = +d.2001;
d.2012 = +d.2012;
您可以使用其他语法访问字段,但:
d['2001'] = +d['2001'];
d['2012'] = +d['2012'];
我省略了这里的第一条语句,因为它没有任何效果。您是否收到任何错误消息?未捕获的语法错误:包含以下代码的行上出现意外的非法标记:d.indic\u ed,geo\time=d.indic\u ed,geo\time;。当我删除data.forEach函数(这是我在这个问题之前的旧代码)并在浏览器中运行它时,我在包含以下代码的行上得到了一个错误:“Uncaught SyntaxError:Unexpected number:。text(function(d){return d.2012)啊,您需要像这样引用该字段:
d[“indic,geo\time”]
。我建议将其重命名为更理智的名称。我更改了[“indic\u ed,geo\time”]到国家。这一行现在包括d.country=d.country。只是现在我在下一行得到了这个错误:意外数字。我在tsv文件中将2012改为twelf,将2001改为1。现在它不见了。非常感谢您的时间。出于好奇,我问了一个问题,为什么我不能使用这些数字,而必须将它们设为字符串?哦,是的,这是另一回事:)它根本不是有效的Javascript。不过,您可以使用d[“2001”]
而不是d.2001
。