javascript - d3js 轴日期仅开始和结束值

标签 javascript canvas svg charts d3.js

已解决:

谢谢,tickValues 给了我想要的结果。我使用了 d3.min 和 d3.max 的值:

Result

    var xMin = d3.min(groups, function(c) { return d3.min(c.values, function(v) { return v.date; }); });
    var xMax = d3.max(groups, function (c) { return d3.max(c.values, function (v) { return v.date; }); });

    x.domain([xMin,xMax]);

        var xAxis = d3.svg.axis()
            .scale(x)
            .tickFormat(d3.time.format('%y-%m-%d'))
            .orient("bottom")
            .tickValues([xMin, xMax]);

问题:

所以我有一个 D3js 多系列折线图。

Chart

X轴在底部,是时间(这个范围取决于用户的选择,可以是几天、几周、几个月甚至几年)。 Y轴是数值,是小数。

我遇到的问题是轴上的标签重叠并且看起来很差。

所以我的问题是是否有办法只显示轴上的第一个日期和最后一个日期?

我的图表基于这个: http://bl.ocks.org/3884955

我的 x 轴代码:

    var x = d3.time.scale().range([0, dimensions.width]);

    x.domain([
        d3.min(groups, function (c) { return d3.min(c.values, function (v) { return v.date; }); }),
        d3.max(groups, function (c) { return d3.max(c.values, function (v) { return v.date; }); })
    ]);

        var xAxis = d3.svg.axis()
            .scale(x)
            .tickFormat(d3.time.format('%a %d'))
            .orient("bottom")
            .ticks(5);

        svg.append("g")
            .attr("class", "x axis")
            .attr("transform", "translate(0," + dimensions.height + ")")
            .call(xAxis);

最佳答案

尝试使用 ticks() function 调整刻度数或者,如果这没有产生所需的结果,请尝试使用 tickValues() 显式设置刻度值。 .

关于javascript - d3js 轴日期仅开始和结束值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708802/

相关文章:

javascript - 用鼠标沿着向量拖动点

用于交互式可视化的算法,如传播、大小调整、物理等

没有 <use> 标签的 SVG 元素分组

javascript - SVG 仅填充路径下的区域

javascript - Kendo AutoComplete + AngularJS + 对象数组

javascript - IE8 中使用的 jQuery 文件上传 : cannot get response

javascript - 如何使用 jquery 链接或取消链接博客中的特色图片

javascript - float 图调整大小错误,高度无效

javascript - Canvas 无法在 Firefox 上加载

javascript - 水平条形图 d3.js 中的 y 轴上未显示文本