使用d3系列图在零y值处渲染刻度

时间:2014-11-11 22:56:53

标签: svg d3.js angularjs-directive jquery-svg

对于多系列d3情节,我试图在“零”处获得y-tick。我的x轴是时间刻度,y轴是一些随机数据刻度。这是我的傻瓜

http://plnkr.co/edit/emOKcxrHP7gU1U1l0Mff?p=preview

如果我只是在y-tick值上加零,它就不起作用(即在下面的函数中,如果我说 var yTickValues = [0] )并且它会弄乱我的情节(绘制)另一个x轴低于现有的x轴

                   function getYTickValues(){
                        var deltaY = Math.round((maxY - minY)/(yTickCount-1));
                        var yTickValues = [];
                        for(var i=0;i<yTickCount;i++){
                            yTickValues.push(((minY + i * deltaY) * 100) / 100);
                        };
                        return yTickValues;
                    }

我无法弄清楚如何解决这个问题,所以我总能得到一个y-tick为零。我想不要触摸我的minX,maxX,minY和maxY,因为域范围比例将改变以适应零y-tick。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

将y域更改为从0开始:

y.domain([0, maxY]);

然后如上所述在yTickValues数组中包含0:

var yTickValues = [0];

数据值仍然保持在minYmaxY之间,但y轴运行为0.我认为问题是什么?

我还对getYTickValues()函数进行了一些更改,以均匀地分隔剩余的y刻度值。见http://plnkr.co/edit/q6XnujIyB8JdzN8AA88j?p=preview