d3.js:如何导入浮点和字符串类型的csv数据
对d3和javascript非常陌生,但已经花了大约四个小时试图解决这个问题,但还没有找到解决方案 我想使用的.csv数据集既有字符串也有浮点数,请参见此处的示例集:,我当前在导入时遇到问题d3.js:如何导入浮点和字符串类型的csv数据,csv,d3.js,parsefloat,Csv,D3.js,Parsefloat,对d3和javascript非常陌生,但已经花了大约四个小时试图解决这个问题,但还没有找到解决方案 我想使用的.csv数据集既有字符串也有浮点数,请参见此处的示例集:,我当前在导入时遇到问题 d3.csv("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv") .row(function (d) { return { metric: d.metric, Var: d.Var,
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,
等等
主要问题是我的浮点字符PC1和PC2的格式是1.0e-02,而不是0.001,这意味着我不能简单地使用+运算符将数据转换为浮点。相反,我必须使用parseFloat函数,不幸的是,我不知道如何使用它
当我将结构更改为提供的解决方案时
很明显,数据正在读取,但没有打印,因为PC1和PC2值可能正在作为字符串读取。我试图集成parseFloat函数,但它仍然无法绘制我的值
救命啊 那么问题是什么呢?它没有导入数据。当我在现场做一些事情时:它似乎在做一些事情,但我怀疑数据仍然没有被正确读取。主要问题是我的值被编码为1.0e-02而不是0.001,这意味着我不能使用+,但必须使用parseFloat。但是parseFloat不会产生任何响应,所以我认为我使用的parseFloat是错误的。你说你没有得到任何响应是什么意思?您是否收到任何错误消息?链接到您的示例数据不起作用,您是否检查了它是否正确加载?您认为这样做的诀窍是:为重物搬运提供道具!
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;
}
});
});