Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 分析多个CSV文件中的特定列/数据_Javascript_Csv_D3.js - Fatal编程技术网

Javascript 分析多个CSV文件中的特定列/数据

Javascript 分析多个CSV文件中的特定列/数据,javascript,csv,d3.js,Javascript,Csv,D3.js,所以,就在最近,我一直在使用D3.js解析CSV文件中的数据。在阅读Scott Murray的“交互式数据可视化”(一本很棒的书,内容非常丰富)时,它解释了如何从CSV中的表中选择所有数据 解析CSV的代码如下所示: d3.text("three.csv", function(data) { var parsedCSV = d3.csv.parseRows(data); var container = d3.select("#thirdCSV")

所以,就在最近,我一直在使用D3.js解析CSV文件中的数据。在阅读Scott Murray的“交互式数据可视化”(一本很棒的书,内容非常丰富)时,它解释了如何从CSV中的表中选择所有数据

解析CSV的代码如下所示:

d3.text("three.csv", function(data) {
            var parsedCSV = d3.csv.parseRows(data);
            var container = d3.select("#thirdCSV")  
                .append("div")

                .append("table")
                    .attr("id", "tableThree")

                .selectAll("tr")
                    .data(parsedCSV).enter()
                    .append("tr")

                .selectAll("td")
                    .data(function(d) { return d; }).enter()
                    .append("td")
                    .attr("id","three")
                    .text(function(d) { return d; });

    });
对于我的项目,我采取了7个不同的CSV文件,并把它放在一个HTML格式

编写7x以上的代码似乎没有必要,是否有其他方法来解析多个CSV文件?如果是这样,是否还有一种方法可以只解析特定的列,例如D-F列?下面是一个如何设置其中一个文件的图像(其余CSV文件的格式相同)。

在D3
D3.csv()
中有一个特定的用于读取csv文件的方法。您应该使用它,而不是使用
D3.text()
,因为它使事情变得更容易,因为您不需要另外使用
D3.csv.parseRows()
。例如

您可以使用
d3.queue()
异步加载多个数据文件。它会等待所有文件加载,然后再执行下一步。您应该这样使用它:

var q = d3.queue()
    .defer(d3.csv, "first.csv")
    .defer(d3.csv, "second.csv")
    .defer(d3.csv, "third.csv")
    ....
    .awaitAll(function(error, results) {
      if (error) throw error;
      console.log(results);
      draw(results)
    });
我还想指出,
D3.queue()
函数不包含在D3 v3默认捆绑包中,因此您必须单独加载它:

<script src="https://d3js.org/d3-queue.v3.min.js"></script>


将您的代码包装在一个函数中,在该函数中,您可以将非重复部分作为参数传递。您有7个不同的CSV?为什么不创建一个包含这8行的CSV呢?@GerardoFurtado正在考虑这样做,但每个CSV都有自己的角色,例如一个用于毛利,一个用于邮件成本等。如何更好地控制每个选项卡le如果在一个csv中?只需将每个表绑定到您想要的特定数据集(数据的子集)。@dandavis因此我开始使用带有函数错误的参数,数据和随机错误代码出现在d3.v3.min.js库“Uncaught TypeError:n.charCodeAt不是函数”。当我使用上面的代码时,该库很好。。。