不回答这个问题:Radial time series, appending circles
我想更进一步,尝试添加有关甜甜圈的矩形,以创建“径向条形图”。但是,就像圆圈一样,似乎计算某些rect属性并不是那么简单。我尝试使用Gerardo在前述文章中演示的三角方法。但是,未添加任何直肠(也未引发任何错误)。
同样,我的体重秤是:
var x = d3.scaleTime()
.range([0, fullCircle]);
var y = d3.scaleRadial()
.range([innerRadius, outerRadius]);
这次,我尝试像这样添加rects:
var bars = g.selectAll('.bar')
.data(data)
.enter()
.append('rect')
.attr('class','bar')
.attr('x', function(d) {
return y(d.repo) * -Math.sin(x(d.date) + Math.PI)
})
.attr('y', function(d) {
return y(d.repo) * Math.cos(x(d.date) + Math.PI)
})
.attr('width', 8)
.attr('height', function(d) {return y(5)-y(d.repo)})
.style('fill', '#003366');
从概念上讲,它与圆基本上不是相同的方法吗(我们使用sin()
和cos()
从角度转换为像素空间到计算机cx
和{{ 1}})?还是我对radial骨直肠采取了错误的方法?
同样,等效图表为here。
注意:我知道有一个专用于径向矩形的库,但是我想针对一般情况提出这个问题,以便我能理解如何使径向图类型少一些不透明且更具可定制性。