1

我根据http://bl.ocks.org/bunkat/2605010中给出的示例构建了一个正方形网格。现在我正在尝试根据 csv 文件中的数据对网格中的每个单元格进行颜色编码。例如,我有一个 csv 文件,其数据为

单元格,col1

1,2

2,3

3,2

4,1

单元格根据 col1 中的数据着色。就像细胞 1 用蓝色着色,细胞 2 用绿色着色,细胞 3 再次用蓝色着色,细胞 4 用红色着色。

我一直在尝试这样的事情,但它不起作用。请帮忙?

d3.text("frame.csv", function(datasetText) {

var parsedCSV = d3.csv.parseRows(datasetText);    
    var col = row.selectAll(".cell")    
                 .data(function (d) { return d; })    
                .enter().append("svg:rect")    
                 .attr("class", "cell")    
                 .attr("x", function(d) { return d.x; })    
                 .attr("y", function(d) { return d.y; })    
                 .attr("width", function(d) { return d.width; })    
                 .attr("height", function(d) { return d.height; })    
         .style("fill", function(d) { return color(parsedCSV[d].col1); })    
         .style("fill", '#FFF')    
                 .style("stroke", '#555');    

});
4

2 回答 2

0

我发现了我的错误。我不得不使用 d3.csv.parse(string) 而不是 d3.csv.parseRows(string[, accessor]) 函数,因为我的 csv 文件包含列名。谢谢您的帮助。欣赏它。

于 2013-02-24T02:09:58.920 回答
0

有一个“填充”属性可用于设置项目的填充颜色。与其他 d3 函数一样,您可以将值或返回值的函数传递给它。听起来您想使用一个函数来确定您想要的颜色,然后返回该值。请注意,您必须将其作为“#660066”或“rgb(166,0,166)”的字符串(因此用引号括起来)返回。如果你愿意,你也可以使用 rgba。

在此之后,只需编写函数以返回正确的颜色,我无法真正帮助您,因为我不知道您想要什么。

这也可能是d3js 填充颜色的副本。

于 2013-02-22T18:55:36.150 回答