如何使用d3 svg轴始终渲染结束标记

时间:2014-10-19 18:10:03

标签: svg d3.js

我不确定滴答位置如何与d3 svg轴一起使用。我尝试使用ticks,tickSize选项进行游戏,但基本上我用随机数据绘制了“有时”的开始和结束标记

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

(请忽略angularjs方面。我感兴趣的部分是d3中的以下内容)

   var make_x_axis = function () {
            return d3.svg.axis()
                  .scale(x)
                  .orient("bottom") 
                  .ticks(5)
                  .tickFormat("")
                  .tickPadding(8); 
        };

        var make_y_axis = function () {
            return d3.svg.axis()
                  .scale(y)
                  .ticks(6)
                  .orient("left")
                  .tickSize(10,10)
                  .tickPadding(8);
        };

如何始终为X轴和Y轴渲染开始和结束标记?我显然总是在X轴和y轴上得到开始和结束刻度线(不确定如何发生 - 我没有在chrome检查器中的那个位置看到.tick元素)但标签丢失了。我可以找到第一个和最后一个刻度并使用刻度标签信息渲染文本,但显然我不能总是这样做,因为有时候轴给我开始刻度,有时它没有。

感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:4)

我不确定我是否完全理解你的问题,如果你想删除结束的x轴刻度,你应该设置

.outerTickSize(0),

如果您想自定义结尾标记,可以使用

.tickValues(y.ticks(5).concat( y.domain() ));

请查看我的JSFiddle进行演示。