Эта ошибка возникает из-за того, что data.nums
не определено.
Ваша переменная data
не является объектом, содержащим массив следующим образом:
var data = {
nums: [0.3,0.6,0.8,0.95,0.40,0.20]
}
Но, скорее, массив, содержащий объекты:
var data = [
{nums:0.3},
{nums:0.6},
{nums:0.8},
{nums:0.95},
{nums:0.40},
{nums:0.2}
]
Чтобы сохранить сторонний код r
, нам просто нужно передать сам массив данных в selection.data()
и получить доступ к свойству nums
каждого элемента данных:
var barHeight = Math.floor(height / data.length);
svg.selectAll('rect')
.data(data)
.enter().append('rect')
.attr('width', function(d) { return d.nums * width; })
.attr('height', barHeight)
.attr('y', function(d, i) { return i * barHeight; })
.attr('fill', 'steelblue');