var svgslide = d3.select("#svg #chart").append("svg:svg")
.attr("width", slideWidth-100)
.attr("height", slideHeight-100)
.attr("class", "chart")
.attr("class", "borders");
svgslide.append("text")
.attr("y", 325)
.attr("x", 175)
.attr("class", "logoText")
.text("SVG");
shapeslide.append("circle")
.attr("cx", "50%")
.attr("cy", "50%")
.attr("r", "100")
.attr("fill", "#fff");
var slide =
d3.select("#svg #chart").append("svg:svg")
var circles = slide.selectAll("circle")
var exampleData = [
{"name":"Ireland","value":852}, {"name":"United Kingdom", "value":406},
{"name":"France","value":182}, {"name":"Greece", "value":174},
{"name":"Zimbabwe","value":103}];
Source
var countryscale = d3.scale.linear()
.domain([0, d3.max(exampleData, function(d){return d.value;})])
.range([0, 1]);
countryslide.selectAll("circle")
.data(exampleData)
.enter()
.append("circle")
.attr("cx", function(d,i){return (i * 20 + 15) + "%";})
.attr("cy", "50%")
.attr("fill", "white")
.attr("r", function(d,i){return countryscale(d.value) * 100;})
animslidePos.select("rect")
.transition()
.duration(1000)
.attr("x", "80%")
.attr("y", "75%")
.transition()
.delay(1000)
.attr("fill", "red");
animslideAdd.selectAll("text")
.data(animslideAddData)
.enter()
.append("text")
.attr("fill", "#00ff00")
.attr("stroke", "#ddffdd")
.attr("transform", "rotate(90)")
.attr("font-size", "22px")
.attr("x", "-20%")
.attr("y", function(d,i){ return (-70 * i); })
.text(function(d,i){console.log(d); return d;})
.transition().duration(2000)
.attr("x", "100%");
{
"@context": {
"ical": "http://www.w3.org/2002/12/cal/ical#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"ical:dtstart": {
"@type": "xsd:dateTime"
}
},
"ical:summary": "Lady Gaga Concert",
"ical:location": "New Orleans Arena, New Orleans, Louisiana, USA",
"ical:dtstart": "2011-04-09T20:00Z"
}
d3.json('../gaga.json', function(error, json){
if (error) return console.warn(error);
var now = new Date(Date.now());
var then = new Date(json["ical:dtstart"]);
var days = Math.floor((now-then) / (1000 * 60 * 60 * 24));
d3.select('#dateOutput')
.append('p').text(days+' days elapsed');
});
A huge amount of code for free, if you read the documentation
(beware Stackoverflow)
//Force-Directed Graph Setup
var forcecolor = d3.scale.category20();
var forceOne = d3.layout.force()
.charge(-200)
.linkDistance(100)
.size([400, 400]);
var svgOne = d3.select("#forcechart").append("svg")
.attr("class", "chart")
.attr("width", "450px")
.attr("height", "500px");
forceOne
.nodes(graphOne.nodes)
.links(graphOne.links)
.start();
var linkOne = svgOne.selectAll(".link")
.data(graphOne.links)
.enter().append("line")
.attr("class", "link")
.style("stroke-width", function(d) { return Math.sqrt(d.value); });
var nodeOne = svgOne.selectAll(".node")
.data(graphOne.nodes)
.enter().append("circle")
.attr("class", "node")
.attr("r", 5)
.style("fill", function(d) { return forcecolor(d.group); })
.call(forceOne.drag);
nodeOne.append("title")
.text(function(d) { return d.name; });
forceOne.on("tick", function() {
linkOne.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; });
nodeOne.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
});
graphOne = {
"nodes": [
{"name":"A", "group": 1},
{"name":"B", "group": 1},
{"name":"C", "group": 2},
{"name":"D", "group": 3},
{"name":"E", "group": 3}
],
"links": [
{"source":0, "target":1, "value":1},
{"source":0, "target":2, "value":5},
{"source":1, "target":2, "value":5},
{"source":3, "target":4, "value":1},
{"source":3, "target":2, "value":5},
{"source":4, "target":2, "value":5},
]
};
SELECT ?game, ?title
WHERE {
?game <http://purl.org/dc/terms/subject>
<http://dbpedia.org/resource/Category:First-person_shooters> .
?game foaf:name ?title .
}
ORDER by ?title
LIMIT 5
d3.json(dbpediagame, function(error, json){
console.log(json);
});
var rows = d3.select('#bindresults')
.selectAll("tr")
.data(json['results']['bindings'])
.enter()
.append("tr");
var cells = rows.selectAll('td')
.data(function(d){return d3.values(d)})
.enter().append("td")
.text(function(d) {return d['value']});
#graphresults circle:hover{
stroke: #000;
stroke-width: 3px;
}
Part of the attraction of SVG & D3 is that it's not a black box like flash or canvas.
Use a spacebar or arrow keys to navigate