d3.js轴用于跨越天,月,年的时间间隔(年龄)

时间:2018-04-10 22:07:07

标签: datetime d3.js momentjs data-visualization

我有一个包含不同年龄的数据集。 Age列有这样的数据: 1天,1周,1年,2天,2个月,3年,20年等

我想在D3.js中显示它,显示为多线图,x轴上的年龄和Y-这个年龄在数据集中出现的次数。

但有可能将其可视化吗?或者我需要将此数据转换为一种格式,例如。只有几天(几个月/几年)?

1 个答案:

答案 0 :(得分:-2)

您可能想要一个日志比例,d3提供。并且,是的,转换为通用格式。但是你的对数刻度轴可以很聪明地表示时间段,或者你可以像列出的那样手动制作刻度标签。

Moment.js durations会让事情变得更轻松。例如:

let ages = [ 1, 'day'], [1, 'week'], [1, 'year'], [2, 'days'], [2, 'months']]
let durations = ages.map(([n, unit]) => moment.duration(n, unit))
let asDays = durations.map(d => d.asDays()) // [1, 7, 365, 2, 61]

将其与d3日志轴example相结合,我制作了一个jsfiddle,其中显示了如何从您的数据到公共单位,但随后在轴上显示了人性化的标签。