chart = {
const svg = d3.create("svg").attr("viewBox", [0, 0, width, height]);
svg
.append("g")
.attr("fill", "steelblue")
.selectAll("rect")
.data(students)
.join("rect")
.attr("x", d => x(d.name))
.attr("y", d => y(d.var1))
.attr("height", d => y(0) - y(d.var1))
.attr("width", x.bandwidth());
svg
.append("g")
.selectAll("text")
.data(students)
.join("text")
.text(d => Math.floor(d.var1))
.attr("x", d => x(d.name) + x.bandwidth() / 2)
.attr("y", d => y(d.var1) - 6)
.attr("text-anchor", "middle")
.attr("font-family", "sans-serif")
.attr("font-size", "12px")
.attr("fill", "black");
svg
.append("g")
.attr("transform", `translate(0,${height - margin.bottom})`)
.selectAll("text")
.data(students)
.join("text")
.text(d => d.name.split(' ')[0])
.attr("x", d => x(d.name) + x.bandwidth() / 2)
.attr("y", d => 60)
.attr("text-anchor", "middle")
.attr("font-family", "sans-serif")
.attr("font-size", "12px")
.attr("fill", "black");
svg.append("g").call(xAxis);
svg.append("g").call(yAxis);
svg.call(yTitle);
return svg.node();
}