javascript - 我怎么知道 Axis 上显示的是什么日期?

标签 javascript date d3.js time axis

我已经为日期范围创建了一个 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))

最佳答案

最初我将您的问题作为 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>

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

关于javascript - 我怎么知道 Axis 上显示的是什么日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57987554/

相关文章:

javascript - '[string, string] 类型的参数错误? (在 Angular 和 d3 中)

javascript - 将 SVG 线条元素添加到折线图中

javascript - AngularJS,$routeProvider

javascript - AngularJs 指令在页面重新加载之前不起作用

javascript - 从带有 ID 的嵌套文档中检索数据

linux - 如何从给定时间中减去分钟?

javascript - 在 JavaScript 中查找两个日期数组之间的差异

Internet Explorer 中的 Javascript 无效日期错误

javascript - D3 图形缺少与轴中刻度一样多的文本元素

javascript - 在javascript中赋值而不是引用