Datetime d3.js表示跨越天、月、年的时间间隔(年龄)轴

Datetime d3.js表示跨越天、月、年的时间间隔(年龄)轴,datetime,d3.js,momentjs,data-visualization,Datetime,D3.js,Momentjs,Data Visualization,我有一个包含不同年龄的数据集。“年龄”列包含如下数据: 1天、1周、1年、2天、2个月、3年、20年等 我想在D3.js中显示它,显示为多折线图,x轴和Y轴上的年龄-这个年龄在数据集中出现了多少次 但有可能把它想象成现在的样子吗?或者我需要将这些数据转换为一种格式,例如仅天(月/年)?您可能需要d3提供的对数刻度。并且,是的,转换为通用格式。但是,您的对数刻度轴可以巧妙地表示时间段,也可以像您列出的那样手动创建刻度标签 这样会更容易。例如: let ages = [ 1, 'day'], [1,

我有一个包含不同年龄的数据集。“年龄”列包含如下数据: 1天、1周、1年、2天、2个月、3年、20年等

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


但有可能把它想象成现在的样子吗?或者我需要将这些数据转换为一种格式,例如仅天(月/年)?

您可能需要d3提供的对数刻度。并且,是的,转换为通用格式。但是,您的对数刻度轴可以巧妙地表示时间段,也可以像您列出的那样手动创建刻度标签

这样会更容易。例如:

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对数轴相结合,我制作了一个图表,显示如何从数据获取到一个通用单位,但随后在轴上显示人性化标签。

我从未听说过对数比例!非常感谢你!我想这将是最好的选择。起初,我想根据这张图绘制图表,但后来意识到它行不通。将寻找类似的例子与日志规模!一些可能有用的链接:。此外,您可能希望使用类似于moment.js的内容来格式化刻度标签的时间间隔,并将数据编码为天数或类似的内容。js绝对知道如何将时间间隔(可能以毫秒为单位)转换成漂亮的文本标签。感谢您的帮助!我会检查所有的链接和moment.js!我也没听说过!