Существует какое-то недоразумение здесь: ты путаешь d3.csv
, который является запрос, с d3.csvParse
, который разбирает строку (а также смешивание D3 v3 с функциями D3 v4). Это различие:
d3.csv
d3.csv функция, которая принимает в качестве аргументов (url[[, row], callback])
:
Returns a new request for the CSV file at the specified url with the default mime type text/csv. (emphasis mine)
Итак, как вы можете видеть, вы используете d3.csv
, когда вы хотите, чтобы запросить данный CSV-файл с заданным URL-адресом.
Например, фрагмент кода ниже получает CSV в URL между кавычками, который выглядит, как это ...
name, parent
Level 2: A, Top Level
Top Level, null
Son of A, Level 2: A
Daughter of A, Level 2: A
Level 2: B, Top Level
... и записывает файл CSV разобраны, проверить его:
d3.csv("https://gist.githubusercontent.com/d3noob/fa0f16e271cb191ae85f/raw/bf896176236341f56a55b36c8fc40e32c73051ad/treedata.csv", function(data){
console.log(data);
});
<script src="https://d3js.org/d3.v4.min.js"></script>
d3.csvParse
вывода п, с другой стороны, d3.csvParse (или d3.csv.parse
в D3 v3), которая принимает в качестве аргументов (string[, row])
:
Parses the specified string, which must be in the delimiter-separated values format with the appropriate delimiter, returning an array of objects representing the parsed rows.
Таким образом, вы используете d3.csvParse
, когда вы хотите, чтобы разобрать строку.
Вот демо, предположим, что у вас есть эта строка:
var data = "foo,bar,baz\n42,33,42\n12,76,54\n13,42,17";
Если вы хотите, чтобы разобрать его, вы будете использовать d3.csvParse
, не d3.csv
:
var data = "foo,bar,baz\n42,33,42\n12,76,54\n13,42,17";
var parsed = d3.csvParse(data);
console.log(parsed);
<script src="https://d3js.org/d3.v4.min.js"></script>