-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmatrix.js
More file actions
72 lines (63 loc) · 3 KB
/
Copy pathmatrix.js
File metadata and controls
72 lines (63 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
function draw_matrix()
{
var margin = {top: 40, right: 20, bottom: 30, left: 0},
width = 800 - margin.left - margin.right,
height = 700 - margin.top - margin.bottom;
d3.csv("matrix.csv", function(error, data){
var svg = d3.select("#matrix").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
var keys = Object.keys(data[0]);
var r = data.map(function (row) {return row[keys[0]]});
var x = d3.scale.ordinal().domain(keys).rangeBands([300, width]);
var y = d3.scale.ordinal().domain(r).rangeBands([160, height]);
svg.selectAll('text').data(keys).enter()
.append("g")
.attr("transform", function(d){return "translate(" + x(d) + ",140)";})
.append("text")
.attr("transform", "rotate(-75)")
.text(function(d){return d;})
var rLabels = svg.append("g").selectAll('text')
.data(r).enter()
.append('g').attr("transform", function(d){return "translate(0," + y(d) + ")";})
.append('text').text(function(d){return d});
keys.splice(0,1);
console.log(keys);
console.log(data);
/*
var rows = tbody.selectAll('tr').data(data).enter().append('tr')
var cells = rows.selectAll('td').data(function(row){
return keys.map(function(column) {
return{column:column, value:row[column]} })})
.enter()
.append('td')
.text(function(d) { console.log(d);return d.value;});
*/
console.log(data.length)
function fill_by_value(x)
{
if (x >= 200)
return '#FF0000';
if (x >= 160)
return '#FF1919'
if (x >= 80)
return '#FF3333'
if (x >= 40)
return '#FF6666'
if (x >= 20)
return '#FF9999'
if (x >= 10)
return '#FFC2C2'
if (x >= 1)
return '#FFE5E5'
return '#FFFAFA';
}
var x2 = d3.scale.linear().domain([0, 13]).range([320, width - 14]);
var y2 = d3.scale.linear().domain([0, data.length]).range([148, height - 14]);
var rows = svg.append('g').selectAll("g").data(data).enter().append('g').attr("transform", function(d, i){ return "translate("+(0)+ ", " + y2(i) + ")";})
var cells = rows.selectAll('g')
.data(function(d){return keys.map(function(k, i){return {'index':i,'value':d[k]};});}).enter().append('rect').attr("x", function(d){ return x2(d['index']) ;}).attr('fill', function(d) { return fill_by_value(d['value']);}).attr("width", 20).attr("height",20)
});
}