The University of Florida Sparse Matrix Collection provides a vast collection of interesting graphs in Matrix Market format. This example shows how to adapt this format to D3's force layout.
Last active
February 9, 2016 01:19
-
-
Save mbostock/2846454 to your computer and use it in GitHub Desktop.
Force Layout & Matrix Market Format
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
license: gpl-3.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%%MatrixMarket matrix coordinate pattern symmetric | |
%------------------------------------------------------------------------------- | |
% UF Sparse Matrix Collection, Tim Davis | |
% http://www.cise.ufl.edu/research/sparse/matrices/HB/can_161 | |
% name: HB/can_161 | |
% [SYMMETRIC PATTERN FROM CANNES,LUCIEN MARRO,JUNE 1981.] | |
% id: 94 | |
% date: 1981 | |
% author: L. Marro | |
% ed: I. Duff, R. Grimes, J. Lewis | |
% fields: title A name id date author ed kind | |
% kind: structural problem | |
%------------------------------------------------------------------------------- | |
161 161 769 | |
1 1 | |
2 1 | |
16 1 | |
17 1 | |
18 1 | |
32 1 | |
65 1 | |
66 1 | |
80 1 | |
2 2 | |
3 2 | |
17 2 | |
18 2 | |
19 2 | |
65 2 | |
66 2 | |
67 2 | |
3 3 | |
4 3 | |
18 3 | |
19 3 | |
20 3 | |
66 3 | |
67 3 | |
68 3 | |
4 4 | |
5 4 | |
19 4 | |
20 4 | |
21 4 | |
67 4 | |
68 4 | |
69 4 | |
5 5 | |
6 5 | |
20 5 | |
21 5 | |
22 5 | |
68 5 | |
69 5 | |
70 5 | |
6 6 | |
7 6 | |
21 6 | |
22 6 | |
23 6 | |
69 6 | |
70 6 | |
71 6 | |
7 7 | |
8 7 | |
22 7 | |
23 7 | |
24 7 | |
70 7 | |
71 7 | |
72 7 | |
8 8 | |
9 8 | |
23 8 | |
24 8 | |
25 8 | |
71 8 | |
72 8 | |
73 8 | |
9 9 | |
10 9 | |
24 9 | |
25 9 | |
26 9 | |
72 9 | |
73 9 | |
74 9 | |
10 10 | |
11 10 | |
25 10 | |
26 10 | |
27 10 | |
73 10 | |
74 10 | |
75 10 | |
11 11 | |
12 11 | |
26 11 | |
27 11 | |
28 11 | |
74 11 | |
75 11 | |
76 11 | |
12 12 | |
13 12 | |
27 12 | |
28 12 | |
29 12 | |
75 12 | |
76 12 | |
77 12 | |
13 13 | |
14 13 | |
28 13 | |
29 13 | |
30 13 | |
76 13 | |
77 13 | |
78 13 | |
14 14 | |
15 14 | |
29 14 | |
30 14 | |
31 14 | |
77 14 | |
78 14 | |
79 14 | |
15 15 | |
16 15 | |
30 15 | |
31 15 | |
32 15 | |
78 15 | |
79 15 | |
80 15 | |
16 16 | |
17 16 | |
31 16 | |
32 16 | |
65 16 | |
79 16 | |
80 16 | |
17 17 | |
18 17 | |
32 17 | |
33 17 | |
34 17 | |
48 17 | |
18 18 | |
19 18 | |
33 18 | |
34 18 | |
35 18 | |
19 19 | |
20 19 | |
34 19 | |
35 19 | |
36 19 | |
20 20 | |
21 20 | |
35 20 | |
36 20 | |
37 20 | |
21 21 | |
22 21 | |
36 21 | |
37 21 | |
38 21 | |
22 22 | |
23 22 | |
37 22 | |
38 22 | |
39 22 | |
23 23 | |
24 23 | |
38 23 | |
39 23 | |
40 23 | |
24 24 | |
25 24 | |
39 24 | |
40 24 | |
41 24 | |
25 25 | |
26 25 | |
40 25 | |
41 25 | |
42 25 | |
26 26 | |
27 26 | |
41 26 | |
42 26 | |
43 26 | |
27 27 | |
28 27 | |
42 27 | |
43 27 | |
44 27 | |
28 28 | |
29 28 | |
43 28 | |
44 28 | |
45 28 | |
29 29 | |
30 29 | |
44 29 | |
45 29 | |
46 29 | |
30 30 | |
31 30 | |
45 30 | |
46 30 | |
47 30 | |
31 31 | |
32 31 | |
46 31 | |
47 31 | |
48 31 | |
32 32 | |
33 32 | |
47 32 | |
48 32 | |
33 33 | |
34 33 | |
48 33 | |
49 33 | |
50 33 | |
64 33 | |
34 34 | |
35 34 | |
49 34 | |
50 34 | |
51 34 | |
35 35 | |
36 35 | |
50 35 | |
51 35 | |
52 35 | |
36 36 | |
37 36 | |
51 36 | |
52 36 | |
53 36 | |
37 37 | |
38 37 | |
52 37 | |
53 37 | |
54 37 | |
38 38 | |
39 38 | |
53 38 | |
54 38 | |
55 38 | |
39 39 | |
40 39 | |
54 39 | |
55 39 | |
56 39 | |
40 40 | |
41 40 | |
55 40 | |
56 40 | |
57 40 | |
41 41 | |
42 41 | |
56 41 | |
57 41 | |
58 41 | |
42 42 | |
43 42 | |
57 42 | |
58 42 | |
59 42 | |
43 43 | |
44 43 | |
58 43 | |
59 43 | |
60 43 | |
44 44 | |
45 44 | |
59 44 | |
60 44 | |
61 44 | |
45 45 | |
46 45 | |
60 45 | |
61 45 | |
62 45 | |
46 46 | |
47 46 | |
61 46 | |
62 46 | |
63 46 | |
47 47 | |
48 47 | |
62 47 | |
63 47 | |
64 47 | |
48 48 | |
49 48 | |
63 48 | |
64 48 | |
49 49 | |
50 49 | |
64 49 | |
50 50 | |
51 50 | |
51 51 | |
52 51 | |
52 52 | |
53 52 | |
53 53 | |
54 53 | |
54 54 | |
55 54 | |
55 55 | |
56 55 | |
56 56 | |
57 56 | |
57 57 | |
58 57 | |
58 58 | |
59 58 | |
59 59 | |
60 59 | |
60 60 | |
61 60 | |
61 61 | |
62 61 | |
62 62 | |
63 62 | |
63 63 | |
64 63 | |
64 64 | |
65 65 | |
66 65 | |
80 65 | |
81 65 | |
82 65 | |
96 65 | |
66 66 | |
67 66 | |
81 66 | |
82 66 | |
83 66 | |
67 67 | |
68 67 | |
82 67 | |
83 67 | |
84 67 | |
68 68 | |
69 68 | |
83 68 | |
84 68 | |
85 68 | |
69 69 | |
70 69 | |
84 69 | |
85 69 | |
86 69 | |
70 70 | |
71 70 | |
85 70 | |
86 70 | |
87 70 | |
71 71 | |
72 71 | |
86 71 | |
87 71 | |
88 71 | |
72 72 | |
73 72 | |
87 72 | |
88 72 | |
89 72 | |
73 73 | |
74 73 | |
88 73 | |
89 73 | |
90 73 | |
74 74 | |
75 74 | |
89 74 | |
90 74 | |
91 74 | |
75 75 | |
76 75 | |
90 75 | |
91 75 | |
92 75 | |
76 76 | |
77 76 | |
91 76 | |
92 76 | |
93 76 | |
77 77 | |
78 77 | |
92 77 | |
93 77 | |
94 77 | |
78 78 | |
79 78 | |
93 78 | |
94 78 | |
95 78 | |
79 79 | |
80 79 | |
94 79 | |
95 79 | |
96 79 | |
80 80 | |
81 80 | |
95 80 | |
96 80 | |
81 81 | |
82 81 | |
96 81 | |
97 81 | |
98 81 | |
112 81 | |
82 82 | |
83 82 | |
97 82 | |
98 82 | |
99 82 | |
83 83 | |
84 83 | |
98 83 | |
99 83 | |
100 83 | |
84 84 | |
85 84 | |
99 84 | |
100 84 | |
101 84 | |
85 85 | |
86 85 | |
100 85 | |
101 85 | |
102 85 | |
86 86 | |
87 86 | |
101 86 | |
102 86 | |
103 86 | |
87 87 | |
88 87 | |
102 87 | |
103 87 | |
104 87 | |
88 88 | |
89 88 | |
103 88 | |
104 88 | |
105 88 | |
89 89 | |
90 89 | |
104 89 | |
105 89 | |
106 89 | |
90 90 | |
91 90 | |
105 90 | |
106 90 | |
107 90 | |
91 91 | |
92 91 | |
106 91 | |
107 91 | |
108 91 | |
92 92 | |
93 92 | |
107 92 | |
108 92 | |
109 92 | |
93 93 | |
94 93 | |
108 93 | |
109 93 | |
110 93 | |
94 94 | |
95 94 | |
109 94 | |
110 94 | |
111 94 | |
95 95 | |
96 95 | |
110 95 | |
111 95 | |
112 95 | |
96 96 | |
97 96 | |
111 96 | |
112 96 | |
97 97 | |
98 97 | |
112 97 | |
113 97 | |
114 97 | |
128 97 | |
98 98 | |
99 98 | |
113 98 | |
114 98 | |
115 98 | |
99 99 | |
100 99 | |
114 99 | |
115 99 | |
116 99 | |
100 100 | |
101 100 | |
115 100 | |
116 100 | |
117 100 | |
101 101 | |
102 101 | |
116 101 | |
117 101 | |
118 101 | |
102 102 | |
103 102 | |
117 102 | |
118 102 | |
119 102 | |
103 103 | |
104 103 | |
118 103 | |
119 103 | |
120 103 | |
104 104 | |
105 104 | |
119 104 | |
120 104 | |
121 104 | |
105 105 | |
106 105 | |
120 105 | |
121 105 | |
122 105 | |
106 106 | |
107 106 | |
121 106 | |
122 106 | |
123 106 | |
107 107 | |
108 107 | |
122 107 | |
123 107 | |
124 107 | |
108 108 | |
109 108 | |
123 108 | |
124 108 | |
125 108 | |
109 109 | |
110 109 | |
124 109 | |
125 109 | |
126 109 | |
110 110 | |
111 110 | |
125 110 | |
126 110 | |
127 110 | |
111 111 | |
112 111 | |
126 111 | |
127 111 | |
128 111 | |
112 112 | |
113 112 | |
127 112 | |
128 112 | |
113 113 | |
114 113 | |
128 113 | |
129 113 | |
130 113 | |
144 113 | |
114 114 | |
115 114 | |
129 114 | |
130 114 | |
131 114 | |
115 115 | |
116 115 | |
130 115 | |
131 115 | |
132 115 | |
116 116 | |
117 116 | |
131 116 | |
132 116 | |
133 116 | |
117 117 | |
118 117 | |
132 117 | |
133 117 | |
134 117 | |
118 118 | |
119 118 | |
133 118 | |
134 118 | |
135 118 | |
119 119 | |
120 119 | |
134 119 | |
135 119 | |
136 119 | |
120 120 | |
121 120 | |
135 120 | |
136 120 | |
137 120 | |
121 121 | |
122 121 | |
136 121 | |
137 121 | |
138 121 | |
122 122 | |
123 122 | |
137 122 | |
138 122 | |
139 122 | |
123 123 | |
124 123 | |
138 123 | |
139 123 | |
140 123 | |
124 124 | |
125 124 | |
139 124 | |
140 124 | |
141 124 | |
125 125 | |
126 125 | |
140 125 | |
141 125 | |
142 125 | |
126 126 | |
127 126 | |
141 126 | |
142 126 | |
143 126 | |
127 127 | |
128 127 | |
142 127 | |
143 127 | |
144 127 | |
128 128 | |
129 128 | |
143 128 | |
144 128 | |
129 129 | |
130 129 | |
144 129 | |
145 129 | |
146 129 | |
160 129 | |
130 130 | |
131 130 | |
145 130 | |
146 130 | |
147 130 | |
131 131 | |
132 131 | |
146 131 | |
147 131 | |
148 131 | |
132 132 | |
133 132 | |
147 132 | |
148 132 | |
149 132 | |
133 133 | |
134 133 | |
148 133 | |
149 133 | |
150 133 | |
134 134 | |
135 134 | |
149 134 | |
150 134 | |
151 134 | |
135 135 | |
136 135 | |
150 135 | |
151 135 | |
152 135 | |
136 136 | |
137 136 | |
151 136 | |
152 136 | |
153 136 | |
137 137 | |
138 137 | |
152 137 | |
153 137 | |
154 137 | |
138 138 | |
139 138 | |
153 138 | |
154 138 | |
155 138 | |
139 139 | |
140 139 | |
154 139 | |
155 139 | |
156 139 | |
140 140 | |
141 140 | |
155 140 | |
156 140 | |
157 140 | |
141 141 | |
142 141 | |
156 141 | |
157 141 | |
158 141 | |
142 142 | |
143 142 | |
157 142 | |
158 142 | |
159 142 | |
143 143 | |
144 143 | |
158 143 | |
159 143 | |
160 143 | |
144 144 | |
145 144 | |
159 144 | |
160 144 | |
145 145 | |
146 145 | |
160 145 | |
161 145 | |
146 146 | |
147 146 | |
161 146 | |
147 147 | |
148 147 | |
161 147 | |
148 148 | |
149 148 | |
161 148 | |
149 149 | |
150 149 | |
161 149 | |
150 150 | |
151 150 | |
161 150 | |
151 151 | |
152 151 | |
161 151 | |
152 152 | |
153 152 | |
161 152 | |
153 153 | |
154 153 | |
161 153 | |
154 154 | |
155 154 | |
161 154 | |
155 155 | |
156 155 | |
161 155 | |
156 156 | |
157 156 | |
161 156 | |
157 157 | |
158 157 | |
161 157 | |
158 158 | |
159 158 | |
161 158 | |
159 159 | |
160 159 | |
161 159 | |
160 160 | |
161 160 | |
161 161 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<meta charset="utf-8"> | |
<style> | |
body { | |
margin: 0; | |
} | |
.node { | |
fill: steelblue; | |
} | |
.link { | |
stroke: #ccc; | |
} | |
</style> | |
<body> | |
<script src="//d3js.org/d3.v3.min.js"></script> | |
<script> | |
var width = 960, | |
height = 500; | |
var svg = d3.select("body").append("svg") | |
.attr("width", width) | |
.attr("height", height); | |
var force = d3.layout.force() | |
.size([width, height]); | |
d3.text("can_161.mtx", function(error, text) { | |
if (error) throw error; | |
var graph = parseMtx(text); | |
var link = svg.selectAll(".link") | |
.data(graph.links) | |
.enter().append("line") | |
.attr("class", "link"); | |
var node = svg.selectAll(".node") | |
.data(graph.nodes) | |
.enter().append("circle") | |
.attr("class", "node") | |
.attr("r", 4.5) | |
.call(force.drag); | |
force | |
.nodes(graph.nodes) | |
.links(graph.links) | |
.on("tick", tick) | |
.start(); | |
function tick() { | |
link.attr("x1", function(d) { return d.source.x; }) | |
.attr("y1", function(d) { return d.source.y; }) | |
.attr("x2", function(d) { return d.target.x; }) | |
.attr("y2", function(d) { return d.target.y; }); | |
node.attr("cx", function(d) { return d.x; }) | |
.attr("cy", function(d) { return d.y; }); | |
} | |
}); | |
function parseMtx(text) { | |
var nodes = []; | |
var links = text | |
.split(/\n/g) // split lines | |
.filter(function(d) { return d.charAt(0) != "%"; }) // skip comments | |
.slice(1, -1) // skip header line, last line | |
.map(function(d) { | |
d = d.split(/\s+/g); | |
var source = d[0] - 1, target = d[1] - 1; | |
return { | |
source: nodes[source] || (nodes[source] = {index: source}), | |
target: nodes[target] || (nodes[target] = {index: target}) | |
}; | |
}); | |
return { | |
nodes: nodes, | |
links: links | |
}; | |
} | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment