canvas8 = {
const height = 200;
const width = 1000;
const context = DOM.context2d(width, height);
var detachedContainer = document.createElement("custom");
var dataContainer = d3.select(detachedContainer);
function drawCustom(data) {
var scale = d3.scaleLinear()
.range([10, 390])
.domain(d3.extent(data));
var dataBinding = dataContainer.selectAll("custom.rect")
.data(data, function(d) { return d; });
dataBinding
.attr("size", 15)
.attr("fillStyle", "rgba(18, 178, 150,0.8)");
dataBinding.enter()
.append("custom")
.classed("rect", true)
.attr("x", scale)
.attr("y", 100)
.attr("size", 8)
.attr("fillStyle", "rgba(255, 170, 1,0.8)");
dataBinding.exit()
.attr("size", 5)
.attr("fillStyle", "rgba(72, 173, 241,0.8)");
drawCanvas();
}
function drawCanvas() {
context.fillStyle = "#ddd";
context.rect(0,0,width,height);
context.fill();
var elements = dataContainer.selectAll("custom.rect");
elements.each(function(d) {
var node = d3.select(this);
context.beginPath();
context.fillStyle = node.attr("fillStyle");
context.rect(node.attr("x"), node.attr("y"), node.attr("size"), node.attr("size"));
context.fill();
context.closePath();
})
}
drawCustom([1, 2, 13, 20, 23]);
drawCustom([1, 2, 12, 16, 20]);
return context.canvas;
}