Skip to content

Commit

Permalink
should solve most of w3c#177 - you can actually add rug plots on any …
Browse files Browse the repository at this point in the history
…quantitative graphic now. I haven't put together an example of this quite yet, and the difference in buffer sizes in point and line charts means the rug is smaller on line charts.
  • Loading branch information
hamilton committed Nov 11, 2014
1 parent d723ab9 commit 0603e54
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 39 deletions.
1 change: 1 addition & 0 deletions js/main.js
Expand Up @@ -220,6 +220,7 @@ $(document).ready(function() {
right: torso.right,
target: '#missing1',
linked: true,
y_rug:true,
y_extended_ticks: true,
x_accessor: 'date',
y_accessor: ['value', 'value2', 'value3']
Expand Down
41 changes: 3 additions & 38 deletions src/charts/point.js
@@ -1,3 +1,6 @@



charts.point = function(args) {
this.args = args;

Expand Down Expand Up @@ -50,44 +53,6 @@ charts.point = function(args) {
pts.attr('r', args.point_size);
}

//are we adding rug plots?
var rug;
if (args.x_rug) {
rug = g.selectAll('line.x_rug').data(args.data[0])
.enter().append('svg:line')
.attr('x1', args.scalefns.xf)
.attr('x2', args.scalefns.xf)
.attr('y1', args.height-args.top+args.buffer/2)
.attr('y2', args.height-args.top)
.attr('class', 'x-rug')
.attr('opacity', 0.3);

if (args.color_accessor) {
rug.attr('stroke', args.scalefns.color);
}
else {
rug.classed('x-rug-mono', true);
}
}

if (args.y_rug) {
rug = g.selectAll('line.y_rug').data(args.data[0])
.enter().append('svg:line')
.attr('x1', args.left+1)
.attr('x2', args.left+args.buffer/2)
.attr('y1', args.scalefns.yf)
.attr('y2', args.scalefns.yf)
.attr('class', 'y-rug')
.attr('opacity', 0.3);

if (args.color_accessor) {
rug.attr('stroke', args.scalefns.color);
}
else {
rug.classed('y-rug-mono', true);
}
}

return this;
}

Expand Down
32 changes: 31 additions & 1 deletion src/common/x_axis.js
@@ -1,3 +1,29 @@
function x_rug(args){
var svg = d3.select(args.target + ' svg');
var all_data=[];
for (var i=0; i<args.data.length;i++){
for (var j=0;j<args.data[i].length;j++){
all_data.push(args.data[i][j]);
}
}
var rug = svg.selectAll('line.x_rug').data(all_data)
.enter().append('svg:line')
.attr('x1', args.scalefns.xf)
.attr('x2', args.scalefns.xf)
.attr('y1', args.height-args.top+args.buffer/2)
.attr('y2', args.height-args.top)
.attr('class', 'x-rug')
.attr('opacity', 0.3);

if (args.color_accessor) {
rug.attr('stroke', args.scalefns.color);
}
else {
rug.classed('x-rug-mono', true);
}
}


function x_axis(args) {
var svg = d3.select(args.target + ' svg');
var g;
Expand Down Expand Up @@ -290,7 +316,11 @@ function x_axis(args) {
.text(function(d) {
return yformat(d);
});
};
};

if (args.x_rug){
x_rug(args);
}

return this;
}
30 changes: 30 additions & 0 deletions src/common/y_axis.js
@@ -1,3 +1,29 @@
function y_rug(args){
var svg = d3.select(args.target + ' svg');
var all_data = [];
for (var i=0; i<args.data.length;i++){
for (var j=0;j<args.data[i].length;j++){
all_data.push(args.data[i][j]);
}
}
var rug = svg.selectAll('line.y_rug').data(all_data)
.enter().append('svg:line')
.attr('x1', args.left+1)
.attr('x2', args.left+args.buffer/2)
.attr('y1', args.scalefns.yf)
.attr('y2', args.scalefns.yf)
.attr('class', 'y-rug')
.attr('opacity', 0.3);

if (args.color_accessor) {
rug.attr('stroke', args.scalefns.color);
}
else {
rug.classed('y-rug-mono', true);
}
}


function y_axis(args) {
var svg = d3.select(args.target + ' svg');
var g;
Expand Down Expand Up @@ -206,6 +232,10 @@ function y_axis(args) {
return o;
})

if (args.y_rug){
y_rug(args);
}

return this;
}

Expand Down

0 comments on commit 0603e54

Please sign in to comment.