【问题标题】:How to set d3.js ticks dynamically如何动态设置 d3.js 刻度
【发布时间】:2016-09-06 16:59:15
【问题描述】:

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

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

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

【问题讨论】:

  • 不看代码很难帮你...

标签: d3.js


【解决方案1】:

我最终只是将 5 添加到 x 域。

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;
                });
            })]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 2014-03-23
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多