したがって、私は Javascript (特に D3 ライブラリ) を使用するのが初めてで、次の例と似ていないことをしようとしています: http://mbostock.github.com/d3/talk/20111116/iris-splom.html。私の場合、各セルは同じもので、まったく同じスケールの 4 x 4 グリッドです。
私の場合、トップレベルの要素はプレートです。各プレートには、値 (必要に応じてヒートマップ) の行と列の交点に行と列があります。適切なプレート要素を作成できました。ただし、すべてのプレートのデータは、適切にネストされるのではなく、各要素の下に存在します。各「プレート」が同じであることを確認できるように画像を添付しようとしました。基礎となるドキュメント構造を見ると同じであり、基本的に各長方形は 2 つのオーバーレイされたデータ ポイントです。
マイクの例 (上のリンク) を詳しく見ると、クロス関数を使用してデータのネストを支援しているように見えます。皆様のご協力に感謝いたします。
以下にコードを掲載しました
d3.csv("plateData.csv", function(data) {
var m = 20,
w = 400,
h = 300,
x_extent = d3.extent(data, function(d){return d.Rows}),
y_extent = d3.extent(data, function(d){return d.Columns}),
z_extent = d3.extent(data, function(d){return d.Values});
var x_scale = d3.scale.linear()
.range([m, w-m])
.domain(x_extent)
var y_scale = d3.scale.linear()
.range([h-m,m])
.domain(y_extent)
var ramp=d3.scale.linear()
.domain(z_extent)
.range(["blue","red"]);
// Nest data by Plates
var plates = d3.nest()
.key(function(d) { return d.Plate; })
.entries(data);
// Insert an svg element (with margin) for each plate in our dataset.
var svg = d3.select("body").selectAll("svg")
.data(plates)
.enter().append("svg:svg")
.attr("width", w)
.attr("height", h)
//add grouping and rect
.append("svg:g")
.selectAll('rect')
.data(data)
.enter()
.append('svg:rect')
.attr('x', function(d){return x_scale(d.Rows)})
.attr('y', function(d){return y_scale(d.Columns)})
.attr('width', 10)
.attr('height', 10)
.style('fill', function(d){return ramp(d.Values)});
}
);
AND の例 データ:
Plate,Rows,Columns,Values
12345,1,1,1158.755
12345,1,2,1097.768
12345,1,3,1097.768
12345,1,4,914.807
12345,2,1,1189.249
12345,2,2,1128.261
12345,2,3,1433.197
12345,2,4,701.352
12345,3,1,914.807
12345,3,2,1433.197
12345,3,3,1189.249
12345,3,4,1402.703
12345,4,1,1158.755
12345,4,2,1067.274
12345,4,3,701.352
12345,4,4,1372.21
56987,1,1,20.755
56987,1,2,97.768
56987,1,3,97.768
56987,1,4,14.807
56987,2,1,89.249
56987,2,2,28.261
56987,2,3,33.197
56987,2,4,15.352
56987,3,1,2000.807
56987,3,2,14.197
56987,3,3,89.249
56987,3,4,402.703
56987,4,1,158.755
56987,4,2,3067.274
56987,4,3,701.352
56987,4,4,182.21