Skip to content

Instantly share code, notes, and snippets.

@emepyc
Last active November 18, 2017 23:56
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 emepyc/0f514a148dbe8f3a55ba0f718882e805 to your computer and use it in GitHub Desktop.
Save emepyc/0f514a148dbe8f3a55ba0f718882e805 to your computer and use it in GitHub Desktop.
y axis in track

Example of vertical axis in a track

<!DOCTYPE html>
<head>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="https://tntvis.github.io/tnt.board/build/tnt.board.min.js"></script>
<script src="track_y_axis.js"></script>
<link rel="stylesheet" type="text/css" href="https://tntvis.github.io/tnt.board/build/tnt.board.css"/>
</head>
<body>
<div id="mydiv"></div>
<script>
var myBoard = tnt.board().from(20).to(500);
var theme = pins_theme();
theme(myBoard, document.getElementById("mydiv"));
</script>
</body>
var pins_theme = function () {
var theme = function (board, div) {
var axis_track = tnt.board.track()
.height(0)
.color("white")
.display(tnt.board.track.feature.axis()
.orientation("top")
);
var track_height = 60;
var offset = 10;
var yScale = d3.scale.linear()
.domain([0, 1])
.range([(track_height - offset), offset]);
var line_display = tnt.board.track.feature()
.create(function (elems) {
var track = this;
var xScale = line_display.scale();
var y = track.height();
elems
.append('line')
.attr('x1', function (d) {
return xScale(d.pos);
})
.attr('x2', function (d) {
return xScale(d.pos);
})
.attr('y1', function () {
return y - offset;
})
.attr('y2', function (d) {
return yScale(d.val);
})
.style('stroke', '#333333');
})
.move(function (elems) {
var xScale = line_display.scale();
elems
.select('line')
.attr('x1', function (d) {
return xScale(d.pos);
})
.attr('x2', function (d) {
return xScale(d.pos);
})
})
.fixed(function (width) {
var track = this;
var g = track.g;
var y = track.height();
// baseline
g
.append('line')
.attr('x1', 0)
.attr('x2', width)
.attr('y1', y - offset)
.attr('y2', y - offset);
// axis
var axisSel = g
.append('g')
.attr('transform', 'translate(30, 0)');
var axis = d3.svg.axis()
.scale(yScale)
.orient('left')
.ticks(3);
axis(axisSel);
});
var line_track = tnt.board.track()
.height(60)
.color("white")
.display(line_display)
.data(tnt.board.track.data.sync()
.retriever (function () {
return [
{
pos : 100,
val : 0.3
},
{
pos : 200,
val : 0.5
},
{
pos : 355,
val : 0.8
},
{
pos : 400,
val : 1
}
];
})
);
board
.add_track(axis_track)
.add_track(line_track);
board(div);
board.start();
};
return theme;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment