Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 用js加载local.csv并用d3.js处理_Javascript_Html_D3.js - Fatal编程技术网

Javascript 用js加载local.csv并用d3.js处理

Javascript 用js加载local.csv并用d3.js处理,javascript,html,d3.js,Javascript,Html,D3.js,我坚持做下面的事情。 我没有正在运行的本地http服务,因此我希望以其他方式处理文件加载 首先,我创建了以下函数,正如一些参考文献中所建议的那样 var fileArray = []; function readSingleFile(evt) { //Retrieve the first (and only!) File from the FileList object var f = evt.target.files; window.array = []

我坚持做下面的事情。 我没有正在运行的本地http服务,因此我希望以其他方式处理文件加载

首先,我创建了以下函数,正如一些参考文献中所建议的那样

var fileArray = [];
function readSingleFile(evt) {
    //Retrieve the first (and only!) File from the FileList object
    var f = evt.target.files;
        window.array = []
        if (f) {
            var r = new FileReader();
                r.onload = function(e) { 
                var contents = e.target.result;
                window.array.push(contents);
                fileArray.push({name:f.name, contents: contents});
                }
                r.readAsText(f);
                console.log(fileArray);
                } else { 
                    alert("Failed to load file");
                }
            }
            document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
然后我尝试在d3.csv函数中调用fileArray。但这就是我坚持的地方——控制台日志只显示了一个空数组

var dataset = []
                    d3.csv(fileArray, function(data) {
                    dataset = data.map(function(d) { return [ d["TEXT"], +d["HOURS"], +d["MONTH_DIGIT"] ]; });
                    console.log(dataset)
                });
.csv文件具有以下结构

"TEXT","HOURS","MONTH_DIGIT"
"Adjustments work",849.45,"01"
如何准确地调用该文件以使用d3.js?

如果您想“获取文件及其内容并使用它”,可以在回调并应用您想要对内容所做的更改后,在
d3.csv()
方法中加载该文件

d3.csv('/path/to/myfile.csv, function(data) {
    // Modify the files data
    ...
    // Do something with d3.js
});
对于JSON:

var data = JSON.parse(JavascriptStringVariableThatContainsJSON);
对于CSV:

 var data = d3.csv.parseRows(JavascriptStringVariableThatContainsMyCSVdata);
//然后将数据添加到图形中并调用enter,如:

 var dataEnter = svg.selectAll("rect").data(data).enter();

您是否已尝试将URL传递到
d3.csv()
?这将是我最后一次尝试。我想获取文件及其内容并使用它。但是您不能在
d3.csv()中处理文件的内容吗?
?没有什么可以阻止您在cdv()方法中执行非d3.js逻辑。请您进一步解释一下您的方法好吗?如果我运行http服务,可能会出现重复的情况,而我目前还没有。“XMLHttpRequest无法加载文件:。跨源请求仅支持HTTP。”我甚至想过启动python simplehttp服务器,但不在后台使用任何类型的HTTP就不能在本地处理文件吗?是的,我尝试过使用相对路径,也尝试过直接在.html文件所在的目录中使用。这里也有同样的问题。我还尝试过通过file://访问本地文件。它失败并出现错误:“跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https。”。我不想更新浏览器设置以允许跨源请求。最简单的方法是通过http访问本地文件。简单但不安全的方法是使用命令和arg:C:\PathTo\Chrome.exe启动Chrome”--允许从Windows文件访问文件,并打开-a“Google Chrome”-n--args--允许从macOS文件访问文件。