javascript - csv 文件的 d3 检索在 javascript 控制台中返回 Nan

标签 javascript file csv d3.js

我正在学习如何使用 d3。我在尝试检索 .cvs/excel 文件时遇到问题。在第 13 行,我得到控制台读数“4 Nan”或“4 undefined, undefined”。我的 books.csv 位置可能有误。它与我的 html 文件和 d3.js 位于“xampp\htdocs\books.csv”中。行和列是 5 * 2。非常感谢任何问题或帮助!

<!DOCTYPE html>
<html>
 <head>
  <meta charset"utf-8">
   <title> D3 example</title>
   <script src="https://d3js.org/d3.v4.min.js"></script>
 </head>
 <body>

  <script>
        d3.csv("books.csv", function(myArrayOfObjects){
        myArrayOfObjects.forEach(function(d){
            console.log( d.x + ", " + d.y);
        });
    });
 </script>
  </body>
    <body>
        Is it Working?
    </body>
</html>

books.csv file contains: 
4, 2
5, 10
3, 2
1, 7
0, 11

最佳答案

问题只是您的 CSV 的结构:

CSV 的第一行是标题d3.csv 使用该行创建对象。因此,在给定的 CSV 中:

foo, bar
42, 12

d3.csv 将创建此数据:

[{"foo": 42, "bar": 12}]

现在,您的 CSV 将数字作为标题,这将不适用于 d.xd.y。 Javascript 允许您将对象键命名为数字 ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types ),但在这种情况下,您必须使用括号符号来引用它:

console.log( d["4"] + ", " + d["2"]);

一旦 42 是 header 。

话虽这么说,这里是另一种 CSV:

x,y
4, 2
5, 10
3, 2
1, 7
0, 11

现在,xy 是 header 。

我创建了一个 plunker 来向您展示区别:https://plnkr.co/edit/OipJg11P3aEvwgQ35xbh?p=preview

您的 CSV 是“wrongData.csv”,我的是“rightData.csv”。检查控制台。

关于javascript - csv 文件的 d3 检索在 javascript 控制台中返回 Nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38215161/

相关文章:

python - 如何使用变量.format写入文件?

php - 写入一个具有一个函数的文件

python - 如何通过命令行填充 csv 文件中的新列

javascript - 如何在javascript中将xml文件转换为csv文件

javascript - 当 django 文档准备好时使用 jquery 运行代码

javascript - 将文本从 jsf/primefaces 复制到剪贴板

javascript - 将鼠标悬停在其他元素下方

javascript - 通过 Javascript 在同一输入 ID 上使用不同的占位符

file - 什么是 TREC 格式?

mysql - 将 CSV 文件加载到 MySQL Workbench