Skip to content

Instantly share code, notes, and snippets.

@careo
Forked from mbostock/.block
Last active August 29, 2015 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save careo/8715802 to your computer and use it in GitHub Desktop.
Save careo/8715802 to your computer and use it in GitHub Desktop.
{
"nodes": [
{
"name": "wood",
"era": 1,
"waggon_cost": "$5,000",
"waggon_sell_price": "$3,500",
"idx": 0
},
{
"name": "grain",
"era": 1,
"waggon_cost": "$5,000",
"waggon_sell_price": "$3,500",
"idx": 1
},
{
"name": "coal",
"era": 1,
"waggon_cost": "$5,000",
"waggon_sell_price": "$3,500",
"idx": 2
},
{
"name": "iron ore",
"era": 1,
"waggon_cost": "$10,000",
"waggon_sell_price": "$7,000",
"idx": 3
},
{
"name": "boards",
"era": 1,
"waggon_cost": "$15,000",
"waggon_sell_price": "$10,500",
"idx": 4
},
{
"name": "thread",
"era": 1,
"waggon_cost": "$15,000",
"waggon_sell_price": "$10,500",
"idx": 5
},
{
"name": "cotton",
"era": 1,
"waggon_cost": "$15,000",
"waggon_sell_price": "$10,500",
"idx": 6
},
{
"name": "cattle",
"era": 1,
"waggon_cost": "$15,000",
"waggon_sell_price": "$10,500",
"idx": 7
},
{
"name": "leather",
"era": 1,
"waggon_cost": "$17,500",
"waggon_sell_price": "$12,250",
"idx": 8
},
{
"name": "iron",
"era": 1,
"waggon_cost": "$20,000",
"waggon_sell_price": "$14,000",
"idx": 9
},
{
"name": "flour",
"era": 2,
"waggon_cost": "$17,500",
"waggon_sell_price": "$12,250",
"idx": 10
},
{
"name": "meat",
"era": 2,
"waggon_cost": "$25,000",
"waggon_sell_price": "$17,500",
"idx": 11
},
{
"name": "paper",
"era": 2,
"waggon_cost": "$25,000",
"waggon_sell_price": "$17,500",
"idx": 12
},
{
"name": "textiles",
"era": 2,
"waggon_cost": "$25,000",
"waggon_sell_price": "$17,500",
"idx": 13
},
{
"name": "pastries",
"era": 2,
"waggon_cost": "$27,500",
"waggon_sell_price": "$19,250",
"idx": 14
},
{
"name": "hardware",
"era": 2,
"waggon_cost": "$30,000",
"waggon_sell_price": "$21,000",
"idx": 15
},
{
"name": "copper ore",
"era": 3,
"waggon_cost": "$25,000",
"waggon_sell_price": "$17,500",
"idx": 16
},
{
"name": "quartz",
"era": 3,
"waggon_cost": "$30,000",
"waggon_sell_price": "$21,000",
"idx": 17
},
{
"name": "copper",
"era": 3,
"waggon_cost": "$35,000",
"waggon_sell_price": "$24,500",
"idx": 18
},
{
"name": "steel",
"era": 3,
"waggon_cost": "$35,000",
"waggon_sell_price": "$24,500",
"idx": 19
},
{
"name": "shoes",
"era": 3,
"waggon_cost": "$35,000",
"waggon_sell_price": "$24,500",
"idx": 20
},
{
"name": "packaging",
"era": 3,
"waggon_cost": "$35,000",
"waggon_sell_price": "$24,500",
"idx": 21
},
{
"name": "wires",
"era": 3,
"waggon_cost": "$35,000",
"waggon_sell_price": "$24,500",
"idx": 22
},
{
"name": "pipes",
"era": 3,
"waggon_cost": "$40,000",
"waggon_sell_price": "$28,000",
"idx": 23
},
{
"name": "glassware",
"era": 3,
"waggon_cost": "$40,000",
"waggon_sell_price": "$28,000",
"idx": 24
},
{
"name": "windows",
"era": 3,
"waggon_cost": "$50,000",
"waggon_sell_price": "$35,000",
"idx": 25
},
{
"name": "sheet metal",
"era": 4,
"waggon_cost": "$50,000",
"waggon_sell_price": "$35,000",
"idx": 26
},
{
"name": "crude oil",
"era": 4,
"waggon_cost": "$60,000",
"waggon_sell_price": "$42,000",
"idx": 27
},
{
"name": "lamps",
"era": 4,
"waggon_cost": "$65,000",
"waggon_sell_price": "$45,500",
"idx": 28
},
{
"name": "food",
"era": 4,
"waggon_cost": "$70,000",
"waggon_sell_price": "$49,000",
"idx": 29
},
{
"name": "clothing",
"era": 4,
"waggon_cost": "$70,000",
"waggon_sell_price": "$49,000",
"idx": 30
},
{
"name": "stainless steel",
"era": 4,
"waggon_cost": "$80,000",
"waggon_sell_price": "$56,000",
"idx": 31
},
{
"name": "chemicals",
"era": 4,
"waggon_cost": "$80,000",
"waggon_sell_price": "$56,000",
"idx": 32
},
{
"name": "silicon",
"era": 4,
"waggon_cost": "$55,000",
"waggon_sell_price": "$38,500",
"idx": 33
},
{
"name": "aluminium",
"era": 5,
"waggon_cost": "$80,000",
"waggon_sell_price": "$56,000",
"idx": 34
},
{
"name": "household supplies",
"era": 5,
"waggon_cost": "$90,000",
"waggon_sell_price": "$63,000",
"idx": 35
},
{
"name": "bauxite",
"era": 5,
"waggon_cost": "$70,000",
"waggon_sell_price": "$49,000",
"idx": 36
},
{
"name": "plastics",
"era": 5,
"waggon_cost": "$85,000",
"waggon_sell_price": "$59,500",
"idx": 37
},
{
"name": "steel beams",
"era": 5,
"waggon_cost": "$90,000",
"waggon_sell_price": "$63,000",
"idx": 38
},
{
"name": "pottery",
"era": 5,
"waggon_cost": "$90,000",
"waggon_sell_price": "$63,000",
"idx": 39
},
{
"name": "petrol",
"era": 5,
"waggon_cost": "$100,000",
"waggon_sell_price": "$70,000",
"idx": 40
},
{
"name": "machinery",
"era": 5,
"waggon_cost": "$110,000",
"waggon_sell_price": "$77,000",
"idx": 41
},
{
"name": "cars",
"era": 5,
"waggon_cost": "$120,000",
"waggon_sell_price": "$84,000",
"idx": 42
},
{
"name": "electronics",
"era": 6,
"waggon_cost": "$175,000",
"waggon_sell_price": "$122,500",
"idx": 43
},
{
"name": "toys",
"era": 6,
"waggon_cost": "$120,000",
"waggon_sell_price": "$84,000",
"idx": 44
},
{
"name": "sports goods",
"era": 6,
"waggon_cost": "$135,000",
"waggon_sell_price": "$94,500",
"idx": 45
},
{
"name": "toiletries",
"era": 6,
"waggon_cost": "$145,000",
"waggon_sell_price": "$101,500",
"idx": 46
},
{
"name": "pharmaceuticals",
"era": 6,
"waggon_cost": "$150,000",
"waggon_sell_price": "$105,000",
"idx": 47
}
],
"links": [
{
"source": 0,
"target": 4,
"value": 5
},
{
"source": 6,
"target": 5,
"value": 4
},
{
"source": 1,
"target": 7,
"value": 7
},
{
"source": 7,
"target": 8,
"value": 3
},
{
"source": 3,
"target": 9,
"value": 21
},
{
"source": 2,
"target": 9,
"value": 21
},
{
"source": 1,
"target": 10,
"value": 4
},
{
"source": 7,
"target": 11,
"value": 3
},
{
"source": 0,
"target": 12,
"value": 5
},
{
"source": 5,
"target": 13,
"value": 3
},
{
"source": 10,
"target": 14,
"value": 3
},
{
"source": 12,
"target": 14,
"value": 3
},
{
"source": 2,
"target": 15,
"value": 11
},
{
"source": 9,
"target": 15,
"value": 11
},
{
"source": 16,
"target": 18,
"value": 14
},
{
"source": 2,
"target": 18,
"value": 14
},
{
"source": 9,
"target": 19,
"value": 9
},
{
"source": 2,
"target": 19,
"value": 9
},
{
"source": 8,
"target": 20,
"value": 2
},
{
"source": 15,
"target": 20,
"value": 2
},
{
"source": 4,
"target": 21,
"value": 1
},
{
"source": 12,
"target": 21,
"value": 1
},
{
"source": 18,
"target": 22,
"value": 5
},
{
"source": 18,
"target": 23,
"value": 8
},
{
"source": 15,
"target": 23,
"value": 8
},
{
"source": 17,
"target": 24,
"value": 6
},
{
"source": 4,
"target": 25,
"value": 2
},
{
"source": 24,
"target": 25,
"value": 2
},
{
"source": 23,
"target": 26,
"value": 4
},
{
"source": 19,
"target": 26,
"value": 4
},
{
"source": 24,
"target": 28,
"value": 2
},
{
"source": 22,
"target": 28,
"value": 2
},
{
"source": 11,
"target": 29,
"value": 2
},
{
"source": 14,
"target": 29,
"value": 2
},
{
"source": 13,
"target": 30,
"value": 1
},
{
"source": 20,
"target": 30,
"value": 1
},
{
"source": 32,
"target": 31,
"value": 3
},
{
"source": 27,
"target": 32,
"value": 10
},
{
"source": 19,
"target": 31,
"value": 3
},
{
"source": 17,
"target": 33,
"value": 2
},
{
"source": 36,
"target": 34,
"value": 2
},
{
"source": 31,
"target": 35,
"value": 1
},
{
"source": 29,
"target": 35,
"value": 1
},
{
"source": 24,
"target": 35,
"value": 1
},
{
"source": 32,
"target": 37,
"value": 4
},
{
"source": 19,
"target": 38,
"value": 1
},
{
"source": 23,
"target": 38,
"value": 1
},
{
"source": 17,
"target": 39,
"value": 2
},
{
"source": 32,
"target": 40,
"value": 1
},
{
"source": 27,
"target": 40,
"value": 1
},
{
"source": 23,
"target": 41,
"value": 2
},
{
"source": 26,
"target": 41,
"value": 2
},
{
"source": 22,
"target": 41,
"value": 2
},
{
"source": 26,
"target": 42,
"value": 1
},
{
"source": 25,
"target": 42,
"value": 1
},
{
"source": 13,
"target": 42,
"value": 1
},
{
"source": 28,
"target": 42,
"value": 1
},
{
"source": 41,
"target": 43,
"value": 1
},
{
"source": 37,
"target": 43,
"value": 1
},
{
"source": 33,
"target": 43,
"value": 1
},
{
"source": 37,
"target": 44,
"value": 1
},
{
"source": 4,
"target": 44,
"value": 1
},
{
"source": 34,
"target": 45,
"value": 1
},
{
"source": 39,
"target": 46,
"value": 1
},
{
"source": 31,
"target": 46,
"value": 1
},
{
"source": 32,
"target": 47,
"value": 1
},
{
"source": 37,
"target": 47,
"value": 1
}
]
}
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.node {
stroke: #fff;
stroke-width: 1.5px;
}
.link {
stroke: #111;
stroke-opacity: 1;
}
text {
font: 10pt sans-serif;
pointer-events: none;
text-shadow: 0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff;
}
</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var width = 1024,
height = 720;
var color = d3.scale.category20();
var force = d3.layout.force()
.charge(-300)
.linkDistance(80)
.size([width, height]);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
svg.append("defs").selectAll("marker")
.data(["arrow"])
.enter().append("marker")
.attr("id", function(d) { return d; })
.attr("viewBox", "0 -5 10 10")
.attr("refX", 15)
.attr("refY", -1.5)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr("orient", "auto")
.append("path")
.attr("d", "M0,-5L10,0L0,5");
d3.json("goods.json", function(error, graph) {
force
.nodes(graph.nodes)
.links(graph.links)
.start();
var link = svg.selectAll(".link")
.data(graph.links)
.enter().append("line")
.attr("class", "link")
//.style("stroke-width", function(d) { return Math.sqrt(d.value); })
.attr("marker-end","url(#arrow)" )
;
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append("circle")
.attr("class", "node")
.attr("r", 15)
.style("fill", function(d) { return color(d.era); })
.call(force.drag);
node.append("title")
.text(function(d) { return d.name; });
var text = svg.append("g").selectAll("text")
.data(graph.nodes)
.enter().append("text")
.attr("x", 2)
.attr("y", ".31em")
.text(function(d) { return d.name; });
force.on("tick", function() {
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; });
text.attr("x", function(d) { return d.x; })
.attr("y", function(d) { return d.y; });
});
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment