anchor.diff:  			left: gutter * 15
   		}
   
  -		// helpers
  -		// TODO: Esto aquí fuera, el gráfico NO DEBE conocer el tipo de dato
  -		let parseTime = d3.timeFormat("%Y/%m/%d")
  -
   		// sizes
   		let container = d3.select(context)
   		let width = +container.node().getBoundingClientRect().width - margin.left - margin.right
  
positive.code: 		for (var i = 0; i < data.length; i++) {
  
  			// PREPROCESS
  			let nest = d3.nest()
    			.key(d => d3.timeMonth(new Date(d.key)))
  				.rollup(d => _.sumBy(d, 'value'))
  
negative.code: 		// scales
  	  let x = d3.scaleTime().range([0, width]);
  	  let y = d3.scalePoint().range([height, 0]);
  		let r = d3.scaleSqrt().range([0, 10]) // tamaño de las bolas
  
  		// domains
  		// TODO: Eliminar referencias a tipos de datos concretos
  		x.domain([
  			d3.timeMonth(new Date(d3.min(data.map(d => d3.min(d.value.map((t) => d3.timeFormat("%Y/%m/%d")(new Date(t.key)))))))),
  			d3.timeMonth(new Date(d3.max(data.map(d => d3.max(d.value.map((t) => d3.timeFormat("%Y/%m/%d")(new Date(t.key))))))))
  		]);
  		y.domain(data.map(d => d.key)).padding(0.5);
  
  