iris = {
const svg = d3.select(DOM.svg(width, height))
.attr("fill", "none")
const color = d3.scaleOrdinal(d3.schemeCategory10)
const x = d3.scaleLinear()
.domain([d3.min(irisdata, d => d.sepalLength), d3.max(irisdata, d => d.sepalLength)])
.range([30, width-60]);
const y = d3.scaleLinear()
.domain([d3.min(irisdata, d => d.sepalWidth), d3.max(irisdata, d => d.sepalWidth)])
.range([25, height-50]);
const r = d3.scaleLinear()
.domain([d3.min(irisdata, d => d.petalLength), d3.max(irisdata, d => d.petalLength)])
.range([3, 40]);
const o = d3.scaleLinear()
.domain([d3.min(irisdata, d => d.petalWidth), d3.max(irisdata, d => d.petalWidth)])
.range([.01, .75]);
svg.selectAll("circle")
.data(irisdata).enter()
.append("circle")
.attr("stroke", "gray")
.attr("fill", d => color(d.species))
.attr("fill-opacity", d => o(d.petalWidth))
.attr("cx", d => x(d.sepalLength))
.attr("cy", d => y(d.sepalWidth))
.attr("r", d => r(d.petalLength))
return svg.node();
}