chart = {
const svg = d3.create("svg")
.attr("viewBox", [0, 0, width, height]);
const bandajdust = 0.7
var font = y.bandwidth()*0.34
svg.append("g")
.call(xAxis)
.selectAll("text")
.attr("class", "axis-label");
const tooltip = d3.select("body").append("div")
.attr("class", "svg-tooltip")
.style("position", "absolute")
.style("visibility", "hidden")
.style("font-family", "sans-serif")
.style("background", "rgba(235, 235, 235,0.9)")
.style("border-radius", ".4rem")
.style("color", "#000000")
.style("display", "block")
.style("font-size", "12px")
.style("max-width", "320px")
.style("padding", ".2rem .4rem")
.style("position", "absol")
const bars = svg.append("g")
.attr("fill-opacity", 0.1)
.selectAll("rect")
.data(data)
.join("rect")
.attr("x", d => x(d.lower_bound))
.attr("y", (d, i) => y(i))
.attr("ry",y.bandwidth()*bandajdust/2)
.attr("xy",y.bandwidth()*bandajdust/2)
.attr("height", y.bandwidth()*bandajdust*0.5)
.attr("width", d => -x(d.lower_bound)+x(d.upper_bound))
.attr("fill", d => (d.ml > 1) ? negativeColor : positiveColor)
const nodes = svg.append("g")
.selectAll("circle")
.data(data)
.enter()
.append("g")
.attr("class", "nodes")
.attr("transform", function(d, i) {
return "translate(" + x(d.ml) + "," + (y(i) + (y.bandwidth()*bandajdust*0.57)/2) + ")";
})
.on("mouseover", function(d){
tooltip
.style("visibility", "visible")
.html(`${siglas[d.state]} <br> Rt: ${d.ml}`)
// .text(`${siglas[d.state]} \n Rt: ${d.ml}`)
// .text("RT: " + d.ml)
})
.on("mousemove", function(){
tooltip.style("top", (d3.event.pageY-(y.bandwidth()*0.93))+"px").style("left",(d3.event.pageX+(y.bandwidth()*1.07))+"px");
})
.on("mouseout", function(){
tooltip.style("visibility", "hidden");
});
nodes.append("circle")
.attr("class", "node")
.attr("fill", "white") // color
.attr("stroke", d => (d.ml > 1) ? negativeColor : positiveColor)
.attr("r", y.bandwidth()*bandajdust/2.25)
.on("mousemove click touchmove", function() {
d3.select(this).attr("r", y.bandwidth()*bandajdust/1.9)
})
.on("mouseout", function() {
d3.select(this).attr("r", y.bandwidth()*bandajdust/2.25)
})
nodes.append("text")
.attr("text-anchor", "start")
.style("font", font+"px sans-serif")
.attr("transform", `translate(${y.bandwidth()*-0.27}, ${y.bandwidth()*0.13})`)
.attr("fill", d => (d.ml > 1) ? negativeColor: positiveColor)
.attr("class", "node-text") // for rotation
.text(d => d.state)
// svg.append("g")
// .call(xAxis)
// .selectAll("text")
// .attr("class", "axis-label");
return svg.node();
}