如何动态设置d3.js标记

时间:2016-09-06 16:59:15

标签: d3.js

我有一个动态的分组条形图,可以随时重新加载新数据。它大部分时间都按预期工作。

我的问题是,在xAxis上,当我的数据值为1时,xAxis为每个刻度显示1而不是0 1 2 3 4 5,从0到1的条形。当这种情况发生时,条形图会一直穿过图表。

如果我将xAxis.ticks设置为1,则图表上的刻度线很好(​​0和1)但是如果我的值超过1,则图表上只有2个刻度。 (0到15)有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我最终只是在x域中添加了5。

var formatxAxis = d3.format(' .0f');

            var xAxis = d3.svg.axis()
                .scale(x)
                .orient("bottom")
                //.tickFormat(d3.format(".2s"));
                .ticks(5)
                .tickFormat(formatxAxis);

            y0.domain(data.map(function (d) { return d.groupLabel; }));
            y1.domain(subgroupLabels).rangeRoundBands([0, y0.rangeBand()]);
            x.domain([0, d3.max(data, function (d) {
                return d3.max(d.subgroups, function (d) {

                    var v; 

                    d.value > 4 ? v = d.value : v = 5  
                    return v;
                });
            })]);