mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
const sparkline = (container_id, data, options) => {
 | 
						|
 | 
						|
	const defaults = {
 | 
						|
        style: {
 | 
						|
            stroke: "rgb(0, 0, 0)",
 | 
						|
            strokeWidth: 2
 | 
						|
        },
 | 
						|
				margin: {top:3, right:3, bottom:3, left:3},
 | 
						|
				width: 100,
 | 
						|
				height: 60
 | 
						|
	};
 | 
						|
 | 
						|
	options = $.extend(true, defaults, options);
 | 
						|
 | 
						|
 | 
						|
	let width_spark = options.width - options.margin.left - options.margin.right;
 | 
						|
	let height_spark = options.height - options.margin.top - options.margin.bottom;
 | 
						|
 | 
						|
	let maxX = data.length;
 | 
						|
	let maxY = d3.max(data, function(d) { return d } );
 | 
						|
 | 
						|
	let x = d3.scaleLinear()
 | 
						|
						.range([0, width_spark])
 | 
						|
						.domain([0,maxX]);
 | 
						|
 | 
						|
	let y = d3.scaleLinear()
 | 
						|
						.range([height_spark, 0])
 | 
						|
						.domain([0,maxY]);
 | 
						|
 | 
						|
	let line = d3.line()
 | 
						|
						.x(function(d, i) {return x(i)})
 | 
						|
						.y(function(d) {return y(d)});
 | 
						|
 | 
						|
	let res = d3.select( "#"+container_id ).append('svg')
 | 
						|
				.attr('width', options.width)
 | 
						|
				.attr('height', options.height)
 | 
						|
		 .append('g')
 | 
						|
		 		.attr("transform", "translate("+options.margin.left+","+options.margin.top+")")
 | 
						|
		 .append('path')
 | 
						|
				.datum(data)
 | 
						|
				.attr('d', line)
 | 
						|
				.style("fill", "none")
 | 
						|
				.style("stroke", options.style.stroke)
 | 
						|
				.style("stroke-width", options.style.strokeWidth);
 | 
						|
 | 
						|
	return res
 | 
						|
 | 
						|
}
 |