我对 D3.js(版本 6)比较陌生。我正在尝试加载本地 .txt 文件“data.tsv(请参阅最后的 github 存储库)。
这是我尝试过的:
var psv=d3.dsvFormat("|");
d3.text("data.txt", function(d){
var rows= psv.parse(data);
}).then(function(data){
console.log(rows);
});
控制台日志显示:dataHandlers.js:39 Uncaught (in Promise) ReferenceError: rows is not Defined
注意:我已将 .txt 上传到我的 github 页面上! https://raw.githubusercontent.com/AhmadMobin/D3-Learning/main/data.txt
非常感谢您在 D3.js 之旅中帮助新手
注意:我确实问了一个关于如何加载 .csv 文件的非常类似的问题,其中一位善良的灵魂确实为我提供了解决方案:) D3.js version 6: Loading a CSV and changing Variable types
最佳答案
您在这里缺少返回:
function(d){
var rows= psv.parse(data);
}
但这不是问题:不仅 d3.text
不接受行转换函数,即使它接受,rows
变量也永远不会被自动传递给 promise (仅文本本身)。
也就是说,您所需要的只是d3.dsv
:
d3.dsv("|", "https://raw.githubusercontent.com/AhmadMobin/D3-Learning/main/data.txt").then(function(data) {
console.log(data);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
关于javascript - D3.js 版本 6 : Loading a TSV and changing Variable types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66253883/