waterConsumptionViz = {
const margin = 75;
const width = 1000 - margin * 2;
const height = 500;
const svgW = d3.select(DOM.svg(width + margin * 2 + 200, height + margin * 2 + 25));
const svg = svgW.append('g').attr('transform', `translate(${margin + 100},${margin})`);
const y = d3.scaleBand().domain(waterConsumptionDataset.map(d => d.Food)).range([0, height]).padding(0.1);
const yAxis = d3.axisBottom(y);
const x = d3.scaleLinear().domain([0, d3.max(waterConsumptionDataset, d => parseInt(d["Water consumption, litres"]))]).range([0, width - 200]);
const xAxis = d3.axisBottom(x);
svg.append('text')
.attr('x', width / 2.6)
.attr('y', -margin / 2)
.attr('text-anchor', 'middle')
.style('font-size', '32px')
.style('font-weight', 'bold')
.text('Water Consumption for Food Production (per 1kg)');
svg.append('text')
.attr('transform', `translate(${width / 2.6},${height + margin/1.5})`)
.attr('text-anchor', 'middle')
.text('Water consumption, litres');
svg.append('g')
.selectAll('.bar-label')
.data(waterConsumptionDataset)
.enter().append('text')
.attr('class', 'bar-label')
.attr('x', -10)
.attr('y', d => y(d.Food) + y.bandwidth() / 2)
.attr('dy', '0.32em')
.attr('text-anchor', 'end')
.text(d => d.Food);
svg.append('g')
.selectAll('rect')
.data(waterConsumptionDataset)
.enter().append('rect')
.attr('y', d => y(d.Food))
.attr('x', 0)
.attr('height', y.bandwidth())
.attr('width', d => x(d["Water consumption, litres"]))
.attr('fill', '#0e87cc');
svg.append('g')
.selectAll('.bar-label')
.data(waterConsumptionDataset)
.enter().append('text')
.attr('class', 'bar-label')
.attr('x', d => x(d["Water consumption, litres"]) + 10)
.attr('y', d => y(d.Food) + y.bandwidth() / 2)
.attr('dy', '0.32em')
.attr('text-anchor', 'start')
.text(d => d["Water consumption, litres"]);
svg.append('g')
.attr('transform', `translate(0,${height})`)
.call(xAxis);
return svgW.node();
};