基于数据点强制区域图的X轴刻度线

时间:2019-03-12 18:46:57

标签: javascript d3.js charts

我正在使用D3的面积图来构造具有这种结构的数据图:

data = [
  {
    date: "2019-02-01", 
    value: 100
  }, {
    date: "2019-03-01", 
    value: 1
  }
]

当我使用D3's Area Chart Example时,他们将X轴设置为:

const x = d3.scaleTime()
    .domain(d3.extent(data, d => Date.parse(d.date)))
    .range([margin.left, width - margin.right])
const xAxis = g => g
    .attr("transform", `translate(0,${height - margin.bottom})`)
    .call(d3.axisBottom(x).ticks(width / 80).tickSizeOuter(0));

但是,这会在X轴上均匀添加刻度线。我尝试过类似的事情:

const xAxis = g => g
    .attr("transform", 'translate(0,' + (height + data.length) + ')')
    .call(d3.axisBottom(x).ticks(data.length).tickSizeOuter(0));

,但是X轴上什么也没有出现。.如何使X轴仅在数据中给定的date值上显示刻度线(即,对于上面的示例数据,我只想要以在X轴上查看2019-02-012019-03-01)。

最好只显示这些日期的月份和年份(即2019-02-01在图表上显示为Feb. 2019)。

0 个答案:

没有答案