gpt4 book ai didi

javascript - 无法将日期传递给 nivo 折线图

转载 作者:行者123 更新时间:2023-12-05 00:31:14 25 4
gpt4 key购买 nike

我正在使用 nivo 折线图,并希望将 x 轴用作时间线,最多一分钟。
不幸的是,我无法呈现该图表,因为它无法正确读取日期。例如,这是我的数据的一部分:

{ x: "2020-04-24T13:07:44.000+0000", y: 0.8063946735624102 }

这是图表获取的数据,使用以下代码生成:
let cpuEntry = {
x: data[i].created,
y: data[i].system_cpu
};

当我尝试打开图表时,我收到以下错误消息:
Uncaught TypeError: v.getTime is not a function

经过一番研究,我发现,图表需要一个日期对象。我把它包装成这样:
x: new Date(data[i].created),

这给了我这样的结果:
Fri Apr 24 2020 15:07:44 GMT+0200

这个错误:
Uncaught Error: Objects are not valid as a React child (found: Fri Apr 24 2020 15:25:00 GMT+0200). If you meant to render a collection of children, use an array instead.

这是我在 ResponsiveLine 中的配置的一部分:
                    xScale={{
format: 'native',
type: 'time'
}}

我已经阅读了一些关于尝试使用“toString()”的内容,但这只是一个相同错误的圈子。我希望有一个人可以帮助我。如果需要,我将提供更多信息。

最佳答案

您应该将 xScale 格式指定为

xScale={{ format: "%Y-%m-%dT%H:%M:%S.%L%Z", type: "time" }}
和 xFormat(例如)
xFormat="time:%Y-%m-%dT%H:%M:%S.%L%Z"
或者(如果你想要时间)
xFormat="time:%H:%M:%S.%L"
还可以根据您的时间间隔设置 axisBottom设置如下:
axisBottom={{
tickValues: "every 1 second",
tickSize: 5,
tickPadding: 5,
tickRotation: 0,
format: "%S.%L",
legend: "Time",
legendOffset: 36,
legendPosition: "middle"
}}
这是一个完整的工作示例: https://codesandbox.io/s/react-hooks-counter-demo-dbr34?file=/src/index.js
时间格式请引用 https://github.com/d3/d3-time-format

关于javascript - 无法将日期传递给 nivo 折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61409773/

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