D3.js 使用日期作为数字,但在UI中将其格式化为日期

D3.js 使用日期作为数字,但在UI中将其格式化为日期,d3.js,d3fc,D3.js,D3fc,让我们举个例子 它将X刻度定义为时间刻度 const xScale = d3 .scaleTime() .domain(fc.extentDate().accessors([d => d.date])(data)); 为了防止缩放处理程序中出现多个刻度到日期的转换,我希望始终使用数字,但保持UI将这些数字显示为日期。所以,我把上面的代码改成线性比例 const xScale = d3 .scaleLinear() .domain(fc.extentLin

让我们举个例子

它将X刻度定义为时间刻度

const xScale = d3
    .scaleTime()
    .domain(fc.extentDate().accessors([d => d.date])(data));
为了防止缩放处理程序中出现多个刻度到日期的转换,我希望始终使用数字,但保持UI将这些数字显示为日期。所以,我把上面的代码改成线性比例

const xScale = d3
    .scaleLinear()
    .domain(fc.extentLinear().accessors([d => d.date.getTime()])(data));
一切正常,但现在我有一个X刻度,显示的是数字而不是日期。问题是,如何添加映射器或格式化程序,将这些数字显示为UI中的日期?我看到了一些d3.1格式的示例,但不确定如何在d3fc中应用它


您将比例提供给D3FC笛卡尔图表,然后该图表将这些比例与它为您创建的轴进行耦合

当图表以
X
Y
前缀显示X轴和Y轴的属性时。因此,如果要更改X轴的勾号格式(通常通过
tickFormat
属性执行),请执行以下操作:

var chart = fc.chartCartesian(
    d3.scaleLinear(),
    d3.scaleLinear()
  )
  .xTickFormat(/* ... formatter goes here */);