%PDF- %PDF-
| Direktori : /home/riacommer/public_html/admin/vendor/rickshaw/src/js/ |
| Current File : /home/riacommer/public_html/admin/vendor/rickshaw/src/js/Rickshaw.Graph.Renderer.LinePlot.js |
Rickshaw.namespace('Rickshaw.Graph.Renderer.LinePlot');
Rickshaw.Graph.Renderer.LinePlot = Rickshaw.Class.create( Rickshaw.Graph.Renderer, {
name: 'lineplot',
defaults: function($super) {
return Rickshaw.extend( $super(), {
unstack: true,
fill: false,
stroke: true,
padding:{ top: 0.01, right: 0.01, bottom: 0.01, left: 0.01 },
dotSize: 3,
strokeWidth: 2
} );
},
seriesPathFactory: function() {
var graph = this.graph;
var factory = d3.svg.line()
.x( function(d) { return graph.x(d.x) } )
.y( function(d) { return graph.y(d.y) } )
.interpolate(this.graph.interpolation).tension(this.tension);
factory.defined && factory.defined( function(d) { return d.y !== null } );
return factory;
},
render: function(args) {
args = args || {};
var graph = this.graph;
var series = args.series || graph.series;
var vis = args.vis || graph.vis;
var dotSize = this.dotSize;
vis.selectAll('*').remove();
var data = series
.filter(function(s) { return !s.disabled })
.map(function(s) { return s.stack });
var nodes = vis.selectAll("path")
.data(data)
.enter().append("svg:path")
.attr("d", this.seriesPathFactory());
var i = 0;
series.forEach(function(series) {
if (series.disabled) return;
series.path = nodes[0][i++];
this._styleSeries(series);
}, this);
series.forEach(function(series) {
if (series.disabled) return;
var nodes = vis.selectAll("x")
.data(series.stack.filter( function(d) { return d.y !== null } ))
.enter().append("svg:circle")
.attr("cx", function(d) { return graph.x(d.x) })
.attr("cy", function(d) { return graph.y(d.y) })
.attr("r", function(d) { return ("r" in d) ? d.r : dotSize});
Array.prototype.forEach.call(nodes[0], function(n) {
if (!n) return;
n.setAttribute('data-color', series.color);
n.setAttribute('fill', 'white');
n.setAttribute('stroke', series.color);
n.setAttribute('stroke-width', this.strokeWidth);
}.bind(this));
}, this);
}
} );