[ Launch: Tributary inlet ] 10015296 by nim23
-
-
Save nim23/10015296 to your computer and use it in GitHub Desktop.
Tributary inlet
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
{"description":"Tributary inlet","endpoint":"","display":"svg","public":true,"require":[],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"styles.css":{"default":true,"vim":false,"emacs":false,"fontSize":12},"_.md":{"default":true,"vim":false,"emacs":false,"fontSize":12},"config.json":{"default":true,"vim":false,"emacs":false,"fontSize":12}},"fullscreen":false,"play":false,"loop":false,"restart":false,"autoinit":true,"pause":true,"loop_type":"pingpong","bv":false,"nclones":15,"clone_opacity":0.4,"duration":3000,"ease":"linear","dt":0.01,"ajax-caching":true,"thumbnail":"http://i.imgur.com/RusKwLU.png"} |
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
function lineChart() { // <-1A | |
var _chart = {}; | |
var _width = 400, _height = 200, // <-1B | |
_margins = {top: 30, left:0, right: 30, bottom: 1}, | |
_x, _y, | |
_data = [], | |
_colors = d3.scale.category10(), | |
_svg, | |
_bodyG, | |
_line; | |
_chart.render = function () { // <-2A | |
if (!_svg) { | |
_svg = d3.select("svg") // <-2B | |
.attr("height", _height) | |
.attr("width", _width); | |
renderAxes(_svg); | |
defineBodyClip(_svg); | |
} | |
renderBody(_svg); | |
}; | |
function renderAxes(svg) { | |
var axesG = svg.append("g") | |
.attr("class", "axes"); | |
renderXAxis(axesG); | |
renderYAxis(axesG); | |
} | |
function renderXAxis(axesG){ | |
var xAxis = d3.svg.axis() | |
.scale(_x.range([0, quadrantWidth()])) | |
.orient("bottom"); | |
axesG.append("g") | |
.attr("class", "x axis") | |
.attr("transform", function () { | |
return "translate(" + xStart() + "," + yStart() + ")"; | |
}) | |
.call(xAxis); | |
d3.selectAll("g.x g.tick") | |
.append("line") | |
.classed("grid-line", true) | |
.attr("x1", 0) | |
.attr("y1", 0) | |
.attr("x2", 0) | |
.attr("y2", - quadrantHeight()); | |
} | |
function renderYAxis(axesG){ | |
var yAxis = d3.svg.axis() | |
.scale(_y.range([quadrantHeight(), 0])) | |
.orient("left"); | |
axesG.append("g") | |
.attr("class", "y axis") | |
.attr("transform", function () { | |
return "translate(" + xStart() + "," + yEnd() + ")"; | |
}) | |
.call(yAxis); | |
d3.selectAll("g.y g.tick") | |
.append("line") | |
.classed("grid-line", true) | |
.attr("x1", 0) | |
.attr("y1", 0) | |
.attr("x2", quadrantWidth()) | |
.attr("y2", 0); | |
} | |
function defineBodyClip(svg) { // <-2C | |
var padding = 5; | |
svg.append("defs") | |
.append("clipPath") | |
.attr("id", "body-clip") | |
.append("rect") | |
.attr("x", 0 - padding) | |
.attr("y", 0) | |
.attr("width", quadrantWidth() + 2 * padding) | |
.attr("height", quadrantHeight()); | |
} | |
function renderBody(svg) { // <-2D | |
if (!_bodyG) | |
_bodyG = svg.append("g") | |
.attr("class", "body") | |
.attr("transform", "translate(" | |
+ xStart() + "," | |
+ yEnd() + ")") // <-2E | |
.attr("clip-path", "url(#body-clip)"); | |
renderLines(); | |
renderDots(); | |
} | |
function renderLines() { | |
_line = d3.svg.line() //<-4A | |
.x(function (d) { return _x(d.x); }) | |
.y(function (d) { return _y(d.y); }); | |
_bodyG.selectAll("path.line") | |
.data(_data) | |
.enter() //<-4B | |
.append("path") | |
.style("stroke", function (d, i) { | |
return _colors(i); //<-4C | |
}) | |
.attr("class", "line"); | |
_bodyG.selectAll("path.line") | |
.data(_data) | |
.transition() //<-4D | |
.attr("d", function (d) { return _line(d); }); | |
} | |
function renderDots() { | |
_data.forEach(function (list, i) { | |
_bodyG.selectAll("circle._" + i) //<-4E | |
.data(list) | |
.enter() | |
.append("circle") | |
.attr("class", "dot _" + i); | |
_bodyG.selectAll("circle._" + i) | |
.data(list) | |
.style("stroke", function (d) { | |
return _colors(i); //<-4F | |
}) | |
.transition() //<-4G | |
.attr("cx", function (d) { return _x(d.x); }) | |
.attr("cy", function (d) { return _y(d.y); }) | |
.attr("r", 2.5); | |
}); | |
} | |
function xStart() { | |
return _margins.left; | |
} | |
function yStart() { | |
return _height - _margins.bottom; | |
} | |
function xEnd() { | |
return _width - _margins.right; | |
} | |
function yEnd() { | |
return _margins.top; | |
} | |
function quadrantWidth() { | |
return _width - _margins.left - _margins.right; | |
} | |
function quadrantHeight() { | |
return _height - _margins.top - _margins.bottom; | |
} | |
_chart.width = function (w) { | |
if (!arguments.length) return _width; | |
_width = w; | |
return _chart; | |
}; | |
_chart.height = function (h) { // <-1C | |
if (!arguments.length) return _height; | |
_height = h; | |
return _chart; | |
}; | |
_chart.margins = function (m) { | |
if (!arguments.length) return _margins; | |
_margins = m; | |
return _chart; | |
}; | |
_chart.colors = function (c) { | |
if (!arguments.length) return _colors; | |
_colors = c; | |
return _chart; | |
}; | |
_chart.x = function (x) { | |
if (!arguments.length) return _x; | |
_x = x; | |
return _chart; | |
}; | |
_chart.y = function (y) { | |
if (!arguments.length) return _y; | |
_y = y; | |
return _chart; | |
}; | |
_chart.addSeries = function (series) { // <-1D | |
_data.push(series); | |
return _chart; | |
}; | |
return _chart; // <-1E | |
} | |
function randomData() { | |
return Math.random() * 9; | |
} | |
function update() { | |
for (var i = 0; i < data.length; ++i) { | |
var series = data[i]; | |
series.length = 0; | |
for (var j = 0; j < numberOfDataPoint; ++j) | |
series.push({x: j, y: randomData()}); | |
} | |
chart.render(); | |
} | |
var numberOfSeries = 2, | |
numberOfDataPoint = 21, | |
data = []; | |
console.log(data); | |
for (var i = 0; i < numberOfSeries; ++i) | |
data.push(d3.range(numberOfDataPoint).map(function (i) { | |
return {x: i, y: randomData()}; | |
})); | |
console.log(data); | |
var chart = lineChart() | |
.height("100") | |
.width("200") | |
.x(d3.scale.linear().domain([0, 20]).range(0, 200)) | |
.y(d3.scale.linear().domain([0, 20]).range(0, 100)); | |
data.forEach(function (series) { | |
chart.addSeries(series); | |
}); | |
chart.render(); |
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
body { | |
font-family: "helvetica"; | |
} | |
#display{ | |
margin-left: 10em; | |
} | |
button { | |
margin: 0 7px 0 0; | |
background-color: #f5f5f5; | |
border: 1px solid #dedede; | |
border-top: 1px solid #eee; | |
border-left: 1px solid #eee; | |
font-size: 12px; | |
line-height: 130%; | |
text-decoration: none; | |
font-weight: bold; | |
color: #565656; | |
cursor: pointer; | |
} | |
.box { | |
width: 200px; | |
height: 200px; | |
margin: 40px; | |
float: left; | |
text-align: center; | |
border: #969696 solid thin; | |
padding: 5px; | |
} | |
.red { | |
background-color: #e9967a; | |
color: #f0f8ff; | |
} | |
.blue { | |
background-color: #add8e6; | |
color: #f0f8ff; | |
} | |
.cell { | |
min-width: 40px; | |
min-height: 20px; | |
margin: 5px; | |
float: left; | |
text-align: center; | |
border: #969696 solid thin; | |
padding: 5px; | |
} | |
.fixed-cell { | |
min-width: 40px; | |
min-height: 20px; | |
margin: 5px; | |
position: fixed; | |
text-align: center; | |
border: #969696 solid thin; | |
padding: 5px; | |
} | |
.h-bar { | |
min-height: 15px; | |
min-width: 10px; | |
background-color: steelblue; | |
margin-bottom: 2px; | |
font-size: 11px; | |
color: #f0f8ff; | |
text-align: right; | |
padding-right: 2px; | |
} | |
.v-bar { | |
min-height: 1px; | |
min-width: 30px; | |
background-color: #4682b4; | |
margin-right: 2px; | |
font-size: 10px; | |
color: #f0f8ff; | |
text-align: center; | |
width: 10px; | |
display: inline-block; | |
} | |
.baseline { | |
height: 1px; | |
background-color: black; | |
} | |
.clear { | |
clear: both; | |
} | |
.selected { | |
background-color: #f08080; | |
} | |
.control-group { | |
padding-top: 10px; | |
margin: 10px; | |
} | |
.table { | |
width: 70%; | |
} | |
.table td, th { | |
padding: 5px; | |
} | |
.table-header { | |
background-color: #00AFEF; | |
font-weight: bold; | |
} | |
.table-row-odd { | |
background-color: #f0f8ff; | |
} | |
.table-row-odd { | |
background-color: #d3d3d3; | |
} | |
.code { | |
display: inline-block; | |
font-style: italic; | |
background-color: #d3d3d3; | |
border: #969696 solid thin; | |
padding: 10px; | |
margin-top: 10px; | |
margin-bottom: 10px; | |
} | |
.countdown{ | |
width: 150px; | |
height: 150px; | |
font-size: 5em; | |
font-weight: bold; | |
} | |
.axis path, .axis line { | |
fill: none; | |
stroke: #000; | |
shape-rendering: crispEdges; | |
} | |
.axis text { | |
font: 10px sans-serif; | |
} | |
.axis .grid-line{ | |
stroke: black; | |
shape-rendering: crispEdges; | |
stroke-opacity: .2; | |
} | |
.line{ | |
fill: none; | |
stroke: steelblue; | |
stroke-width: 2; | |
} | |
.dot { | |
fill: #fff; | |
stroke: steelblue; | |
} | |
.area { | |
stroke: none; | |
fill: steelblue; | |
fill-opacity: .2; | |
} | |
.pie text{ | |
fill: white; | |
font-weight: bold; | |
} | |
.circle { | |
stroke: none; | |
fill: red; | |
fill-opacity: .7; | |
} | |
.cross { | |
stroke: none; | |
fill: blue; | |
fill-opacity: .7; | |
} | |
.diamond { | |
stroke: none; | |
fill: green; | |
fill-opacity: .7; | |
} | |
.square{ | |
stroke: none; | |
fill: yellow; | |
fill-opacity: .7; | |
} | |
.triangle-down{ | |
stroke: none; | |
fill: blueviolet; | |
fill-opacity: .7; | |
} | |
.triangle-up{ | |
stroke: none; | |
fill: darkred; | |
fill-opacity: .7; | |
} | |
.bubble{ | |
fill-opacity: .3; | |
} | |
.bar{ | |
stroke: none; | |
fill: steelblue; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment