Skip to content

Instantly share code, notes, and snippets.

@biovisualize
Created October 6, 2011 01:35
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save biovisualize/1266259 to your computer and use it in GitHub Desktop.
Save biovisualize/1266259 to your computer and use it in GitHub Desktop.
Inkscape d3 tutorial
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
<title>D3-Inkscscape tutorial</title>
</head>
<body>
<div id="viz"></div>
<a href="#" id="download">Download</a>
<script type="text/javascript">
d3.xml("tuto3.svg", "image/svg+xml", function(xml) {
var importedNode = document.importNode(xml.documentElement, true);
d3.select("#viz").node().appendChild(importedNode);
var dataMax = 100;
function generateData(num){
var randomArray = [];
for(var i=0; i<num; i++)randomArray.push(Math.random()*dataMax);
return randomArray;
}
var data = generateData(5);
d3.select("#button_panel")
.on("mousedown", function(d, i){
data = generateData(5);
d3.selectAll("rect.bar")
.data(data)
.transition()
.call(setBarHeight);
});
var barW = 40;
var panelSVG = d3.select("#chart_panel");
var panelX = ~~panelSVG.attr("x");
var panelY = ~~panelSVG.attr("y");
var panelW = ~~panelSVG.attr("width");
var panelH = ~~panelSVG.attr("height");
d3.select("#layer1")
.selectAll("rect.bar")
.data(data)
.enter().append("svg:rect")
.attr("class", "bar")
.attr("width", barW)
.attr("fill", "#5599FF")
.attr("stroke", "black")
.attr("x", function(d, i){return panelX+i*panelW/data.length+10;})
.call(setBarHeight);
function setBarHeight(){
this.attr("height", function(d, i){return d/dataMax*panelH;})
.attr("y", function(d, i){return panelY+panelH-(d/dataMax*panelH);})
}
d3.select("#download")
.on("mouseover", function(){
var html = d3.select("svg")
.attr("version", 1.1)
.attr("xmlns", "http://www.w3.org/2000/svg")
.node().parentNode.innerHTML;
d3.select(this)
.attr("href-lang", "image/svg+xml")
.attr("href", "data:image/svg+xml;base64,\n" + btoa(html));
});
});
</script>
</body>
</html>
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment