d3.js: как импортировать данные в формате csv с типами float и string
Очень плохо знаком с d3 и javascript, но потратил около четырех часов на решение этой проблемы и пока не нашел решения.
В моем наборе данных.csv, который я хотел бы использовать, есть как строковые, так и числа с плавающей запятой (см. Пример набора здесь: http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv), и в настоящее время у меня возникают проблемы с импортом.
d3.csv("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv")
.row(function (d) {
return {
metric: d.metric,
Var: d.Var,
param: d.param,
PC1: +d.PC1, // convert "PC1" column to number
PC2: +d.PC2, // convert "PC2" column to number
Type: d.Type
};
})
.get(function (error, rows) {
console.log(rows);
});
Где я пробовал варианты (для строк 7 и 8) как:
PC1: d.parseFloat("PC1"),
PC1: parseFloat(d.PC1),
PC1: d.parseFloat.PC1,
и т.п.
Основная проблема заключается в том, что мои символы с плавающей точкой (ПК1 и ПК2) имеют форму 1.0e-02, а не 0,001, что означает, что я не могу просто использовать оператор "+" для преобразования моих данных в число с плавающей точкой. Вместо этого я должен использовать функцию parseFloat, которую я, к сожалению, не знаю, как использовать.
Когда я изменяю структуру на решение, предлагаемое Импортированием CSV без заголовков в D3 - данные с числами и строками,
data = d3.csv.parseRows("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv").map(function(row) {
return row.map(function(value, index) {
if(index == 2) {
return value;
} else {
return +value;
}
});
});
Понятно, что данные читаются, но не отображаются на графике, поскольку значения PC1 и PC2, вероятно, считываются в виде строк. Я попытался интегрировать функцию parseFloat, но она все равно не будет отображать мои значения.
Помогите, пожалуйста!