Я согласен, что порой вы хотели бы получить мяч, создавая псевдофункцию, которая всегда будет иметь значение первого аргумента. К счастью, я столкнулся с совершенно новой библиотекой JavaScript под названием jPaq (h ttp: //jpaq.org/ ), который обеспечивает эту функциональность. Самое лучшее в библиотеке - это то, что вы можете загрузить свою собственную сборку, которая содержит только тот код, который вам понадобится.
Для загрузки данных используйте d3.text , а затем d3.csvParseRows , чтобы проанализировать его. Например:
d3.text("data/testnh.csv", function(text) {
console.log(d3.csvParseRows(text));
});
Возможно, вам также захочется преобразовать ваши столбцы в числа, потому что по умолчанию они будут строками. Предположим, что они все числа, вы могли бы сказать:
d3.text("data/testnh.csv", function(text) {
var data = d3.csvParseRows(text).map(function(row) {
return row.map(function(value) {
return +value;
});
});
console.log(data);
});
Попробуйте d3.csvParse (текст)
d3.csv.parseRows, похоже, не работает в современной версии d3.
Так как ответ Бостока в 2012 году d3.csv.parseRows позволяет использовать дополнительную функцию доступа, которая позволяет более точно выразить его ответ:
d3.text("data/testnh.csv", function(text) {
var data = d3.csv.parseRows(text, function(d) {
return d.map(Number);
});
// Now do something with data
});
сначала читается в данных с помощью d3.text
, затем добавляет пользовательскую строку заголовка, затем анализирует результат с помощью d3.csv.parse
d3.text("data/testnh.csv", function(r){
var result = "x, y, z\n" + r; //now you have the header
var data = d3.csv.parse(result);
//do your plotting with data
}