gpt4 book ai didi

javascript - 用于创建简单图表的 d3 数据选择

转载 作者:行者123 更新时间:2023-12-03 01:08:56 25 4
gpt4 key购买 nike

我有以下数据结构来在 D3.js 中创建图表:

var tasklist = {
"tasks": {
"task1": {
"TASKSTARTTIME": "2018-09-07T07:36:19.990Z",
},
"task2": {
"TASKSTARTTIME": "2018-09-07T07:36:20.010Z",
},
"task3": {
"TASKSTARTTIME": "2018-09-07T07:36:20.100Z",
}
}
}

并已成功设置图表的 x 和 y 域,如下所示:

x.domain(d3.extent(Object.entries(tasklist.tasks).map(([d, v]) => (v["TASKSTARTTIME"]))));
y.domain(Object.entries(tasklist.tasks).map(([d, v]) => (d)));

但我认为这一定是错误的,因为当我查看其他示例时,语法看起来更清晰。

所以,我的第一个问题是:是否有更正确的 D3 方法来达到相同的结果?

问题 2:如何选择要绘制的各个数据点?我对 x 轴尝试了以下操作:

([d,v]) => (x(v["TASKSTARTTIME"]))

d => y(d)

但是没有成功。我没有包含完整的代码,因为(我认为)这些可以从控制台进行测试。

最佳答案

您在其他地方看到的语法更清晰,因为大多数人将 D3.js 数据存储在数组中,而不是对象中。您可以尝试将数据更改为数组格式 - 它大大简化了代码:

var tasks = [
{name: 'task1', 'time': '2018-09-07T07:36:19.990Z'},
{name: 'task2', 'time': '2018-09-07T07:36:20.010Z'}
]

var xDomain = d3.extent(tasks, d => d.time)
var yDomain = d3.extent(tasks, d => d.name)

console.log({x: xDomain, y: yDomain});
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

关于javascript - 用于创建简单图表的 d3 数据选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52275915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com