【问题标题】:How can I know what dates are displayed in the axis?我如何知道轴中显示的日期?
【发布时间】:2019-09-18 07:44:48
【问题描述】:

我已经为日期范围创建了一个 xAxis,分为 5 个刻度,我如何“获取”刻度值? 例如:刻度显示一月、二月、三月、四月、五月。哪个 d3 函数检索这些值?

   var x = d3.scaleTime()
        .domain(d3.extent(data, function (d) { return d.date; }))
        .range([0, width]);

    var xAxis = svg.append("g")
        .attr("transform", "translate(0," + height + ")")
        .call(d3.axisBottom(x).ticks(5))

【问题讨论】:

    标签: javascript date d3.js time axis


    【解决方案1】:

    最初我将您的问题作为this one 的副本结束,但转念一想这不是一个足够的副本,因为您正在使用ticks(n) 更改刻度数。

    因此,解决方案是使用相同的数字来获取您的报价。在你的情况下:

    var myTicks = x.ticks(5);
    

    这是一个基本的演示:

    var x = d3.scaleTime()
      .domain([new Date("2017"), new Date("2018")])
      .range([20, 480]);
    
    var axis = d3.axisBottom(x).ticks(5);
    
    var svg = d3.select("svg");
    
    svg.append("g")
      .attr("transform", "translate(0,50)")
      .call(axis);
    
    console.log(x.ticks(5))
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
    <svg width="500" height="100"></svg>

    请记住,鉴于您的问题的标题,我假设您需要实际的 日期对象,而不是轴中的字符串。

    【讨论】:

    • 谢谢,我如何在转换后检查滴答声? xAxis.transition().duration(1000).call(d3.axisBottom(x).ticks(TICKS_COUNT))
    • 我不清楚你在问什么。我建议您发布一个包含所有相关详细信息的新问题。
    • 我收回来,我找到了答案。
    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    相关资源
    最近更新 更多