Created
December 22, 2014 11:20
-
-
Save andreajparker/dbaedae5c49d5bd9c494 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
letter | frequency | |
---|---|---|
A | .08167 | |
B | .01492 | |
C | .02780 | |
D | .04253 | |
E | .12702 | |
F | .02288 | |
G | .02022 | |
H | .06094 | |
I | .06973 | |
J | .00153 | |
K | .00747 | |
L | .04025 | |
M | .02517 | |
N | .06749 | |
O | .07507 | |
P | .01929 | |
Q | .00098 | |
R | .05987 | |
S | .06333 | |
T | .09056 | |
U | .02758 | |
V | .01037 | |
W | .02465 | |
X | .00150 | |
Y | .01971 | |
Z | .00074 |
This file contains hidden or 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> /* set the CSS */ | |
body { font: 12px Arial;} | |
path { | |
stroke: steelblue; | |
stroke-width: 2; | |
fill: none; | |
} | |
.axis path, | |
.axis line { | |
fill: none; | |
stroke: grey; | |
stroke-width: 1; | |
shape-rendering: crispEdges; | |
} | |
div.tooltip { | |
position: absolute; | |
text-align: center; | |
width: 60px; | |
height: 28px; | |
padding: 2px; | |
font: 12px sans-serif; | |
background: lightsteelblue; | |
border: 0px; | |
border-radius: 8px; | |
/* pointer-events: none; This line needs to be removed */ | |
} | |
</style> | |
<body> | |
<!-- load the d3.js library --> | |
<script type= | |
"text/javascript" src="http://d3js.org/d3.v3.min.js"> | |
</script> | |
<script> | |
// Set the dimensions of the canvas / graph | |
var margin = {top: 30, right: 20, bottom: 30, left: 50}, | |
width = 600 - margin.left - margin.right, | |
height = 270 - margin.top - margin.bottom; | |
// Parse the date / time | |
var parseDate = d3.time.format("%d-%b-%y").parse; | |
var formatTime = d3.time.format("%e %B");// Format tooltip date / time | |
// Set the rangestrann | |
var x = d3.time.scale().range([0, width]); | |
var y = d3.scale.linear().range([height, 0]); | |
// Define the axes | |
var xAxis = d3.svg.axis().scale(x) | |
.orient("bottom").ticks(5); | |
var yAxis = d3.svg.axis().scale(y) | |
.orient("left").ticks(5); | |
// Define the line | |
var valueline = d3.svg.line() | |
.x(function(d) { return x(d.date); }) | |
.y(function(d) { return y(d.close); }); | |
// Define 'div' for tooltips | |
var div = d3.select("body") | |
.append("div") // declare the tooltip div | |
.attr("class", "tooltip") | |
.style("opacity", 0); | |
// Adds the svg canvas | |
var svg = d3.select("body") | |
.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 + ")"); | |
// Get the data | |
d3.csv("data.csv", function(error, data) { | |
data.forEach(function(d) { | |
d.date = parseDate(d.date); | |
d.close = +d.close; | |
}); | |
// Scale the range of the data | |
x.domain(d3.extent(data, function(d) { return d.date; })); | |
y.domain([0, d3.max(data, function(d) { return d.close; })]); | |
// Add the valueline path. | |
svg.append("path") | |
.attr("class", "line") | |
.attr("d", valueline(data)); | |
// draw the scatterplot | |
svg.selectAll("dot") | |
.data(data) | |
.enter().append("circle") | |
.attr("r", 5) | |
.attr("cx", function(d) { return x(d.date); }) | |
.attr("cy", function(d) { return y(d.close); }) | |
// Tooltip stuff after this | |
.on("mouseover", function(d) { | |
div.transition() | |
.duration(500) | |
.style("opacity", 0); | |
div.transition() | |
.duration(200) | |
.style("opacity", .9); | |
div .html( | |
'<a href= "'+d.link+'" target="_blank">' + //with a link | |
formatTime(d.date) + | |
"</a>" + | |
"<br/>" + d.close) | |
.style("left", (d3.event.pageX) + "px") | |
.style("top", (d3.event.pageY - 28) + "px"); | |
}); | |
// Add the X Axis | |
svg.append("g") | |
.attr("class", "x axis") | |
.attr("transform", "translate(0," + height + ")") | |
.call(xAxis); | |
// Add the Y Axis | |
svg.append("g") | |
.attr("class", "y axis") | |
.call(yAxis); | |
}); | |
</script> | |
</body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment