{
var svg = d3.create('svg')
.attr("width","1000")
.attr("height","200")
var g = svg.append('g')
.classed('inner', true)
.attr('transform', "translate(40, 30)")
var data = [ 0, 1, 2, 3, 4, 5, 6, 7, 7.5, 8, 9, 10 ];
var data_log = [10, 100, 1000, 10000, 100000];
var value2width = d3.scaleLinear()
.domain([0, 10])
.range([0, 600]);
var value2width_pow2 = d3.scalePow().exponent(2)
.domain([0, 10])
.range([0, 600]);
var value2width_pow05 = d3.scalePow().exponent(0.5)
.domain([0, 10])
.range([0, 600]);
var value2width_sqrt = d3.scaleSqrt()
.domain([0, 10])
.range([0, 600]);
var value2width_log = d3.scaleLog()
.domain([10, 100000])
.range([0, 600]);
// Applying scaleLinear
svg.select('.inner')
.selectAll('circle')
.data(data)
.enter()
.append('circle')
.attr('r', 3)
.attr('cx', function(d) {
return value2width(d);
})
.attr('cy', 0);
svg.select('.inner')
.selectAll('text')
.data(data)
.enter()
.append('text')
.attr('x', function(d) {
return value2width(d);
})
.attr('y', -8)
.text(function(d) {
return d;
});
// Applying scalePow (exp = 2)
svg.select('.inner')
.selectAll('circle.pow2')
.data(data)
.enter()
.append('circle')
.attr('r', 3)
.attr('cx', function(d) {
return value2width_pow2(d);
})
.attr('cy', 40); // Increased spacing
svg.select('.inner')
.selectAll('text.pow2')
.data(data)
.enter()
.append('text')
.attr('x', function(d) {
return value2width_pow2(d);
})
.attr('y', 32)
.text(function(d) {
return d;
});
// Applying scalePow (exp = 0.5)
svg.select('.inner')
.selectAll('circle.pow05')
.data(data)
.enter()
.append('circle')
.attr('r', 3)
.attr('cx', function(d) {
return value2width_pow05(d);
})
.attr('cy', 80); // Increased spacing
svg.select('.inner')
.selectAll('text.pow05')
.data(data)
.enter()
.append('text')
.attr('x', function(d) {
return value2width_pow05(d);
})
.attr('y', 72)
.text(function(d) {
return d;
});
// Applying scaleSqrt
svg.select('.inner')
.selectAll('circle.sqrt')
.data(data)
.enter()
.append('circle')
.attr('r', 3)
.attr('cx', function(d) {
return value2width_sqrt(d);
})
.attr('cy', 120); // Increased spacing
svg.select('.inner')
.selectAll('text.sqrt')
.data(data)
.enter()
.append('text')
.attr('x', function(d) {
return value2width_sqrt(d);
})
.attr('y', 112)
.text(function(d) {
return d;
});
// Applying scaleLog
svg.select('.inner')
.selectAll('circle.log')
.data(data_log)
.enter()
.append('circle')
.attr('r', 3)
.attr('cx', function(d) {
return value2width_log(d);
})
.attr('cy', 160); // Increased spacing
svg.select('.inner')
.selectAll('text.log')
.data(data_log)
.enter()
.append('text')
.attr('x', function(d) {
return value2width_log(d);
})
.attr('y', 152)
.text(function(d) {
return d;
});
return svg.node()
}