【发布时间】:2019-03-12 18:46:56
【问题描述】:
我正在使用 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 值上显示刻度线(即对于上面的示例数据,我只想看看2019-02-01 和 2019-03-01 在 X 轴上)。
最好只显示这些日期的月份和年份(即2019-02-01 将在图表上显示为Feb. 2019)。
【问题讨论】:
标签: javascript d3.js charts