使用 recharts 在 24 小时 X 轴上绘制图表数据,chart.js,我不介意什么
chart data on 24hr X axis using recharts, chart.js, I don't mind what
我苦苦挣扎了好几天,试图找出如何在 24 小时 x 轴上显示我的数据。
这是我的数据:
"glucoseMesures": [
{
"glucose": 85,
"date": "2015-06-12T00:49:50+00:00"
},
{
"glucose": 77,
"date": "2015-06-12T07:09:03+00:00"
},
{
"glucose": 58,
"date": "2015-06-12T11:23:15+00:00"
},
{
"glucose": 110,
"date": "2015-06-12T16:00:58+00:00"
},
{
"glucose": 97,
"date": "2015-06-12T19:35:01+00:00"
},
{
"glucose": 142,
"date": "2015-06-12T21:15:50+00:00"
}
]
我能够将它们绘制到 Recharts 和 Chart.js 但我似乎无法将它们绘制到时间顺序。使用 Recharts,我能够按时间顺序绘制它们,但无法修改 x 轴标签以显示:
labels: ["00:00", "03:00", "06:00", "09:00", "12:00", "15:00", "18:00", "21:00", "00:00"]
我只需要一个带有标签时间的 X 轴,然后是绘制到葡萄糖时间的数据,对不起,我已经制作了 jsfiddle。我正在使用反应。
我需要的:
您可以使用 Chart.js 内置的 time
axis.
轻松完成此操作
诀窍是为 x 轴提供正确的配置值:
unit: hour
- 报价基于小时。
stepSize: 3
- 报价每三小时显示一次。
min: "2015-06-12T00:00"
- 报价从一天的开始开始。
max: "2015-06-13T00:00"
- 报价在第二天开始时结束。
只要您提供的数据集正确排序(按日期时间顺序),您应该会得到如下代码段所示的结果:
new Chart(document.getElementById("chart"), {
type: "line",
data: {
datasets: [{
data: [{
t: "2015-06-12T00:49:50+00:00",
y: 85
},
{
t: "2015-06-12T07:09:03+00:00",
y: 77
},
{
t: "2015-06-12T11:23:15+00:00",
y: 58,
},
{
t: "2015-06-12T16:00:58+00:00",
y: 110
},
{
t: "2015-06-12T19:35:01+00:00",
y: 97
},
{
t: "2015-06-12T21:15:50+00:00",
y: 142
}
]
}]
},
options: {
scales: {
xAxes: [{
type: "time",
time: {
unit: "hour",
stepSize: 3,
min: "2015-06-12T00:00",
max: "2015-06-13T00:00",
displayFormats: {
hour: 'HH:mm'
}
}
}]
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.min.js"></script>
<canvas id="chart"></canvas>
我苦苦挣扎了好几天,试图找出如何在 24 小时 x 轴上显示我的数据。
这是我的数据:
"glucoseMesures": [
{
"glucose": 85,
"date": "2015-06-12T00:49:50+00:00"
},
{
"glucose": 77,
"date": "2015-06-12T07:09:03+00:00"
},
{
"glucose": 58,
"date": "2015-06-12T11:23:15+00:00"
},
{
"glucose": 110,
"date": "2015-06-12T16:00:58+00:00"
},
{
"glucose": 97,
"date": "2015-06-12T19:35:01+00:00"
},
{
"glucose": 142,
"date": "2015-06-12T21:15:50+00:00"
}
]
我能够将它们绘制到 Recharts 和 Chart.js 但我似乎无法将它们绘制到时间顺序。使用 Recharts,我能够按时间顺序绘制它们,但无法修改 x 轴标签以显示:
labels: ["00:00", "03:00", "06:00", "09:00", "12:00", "15:00", "18:00", "21:00", "00:00"]
我只需要一个带有标签时间的 X 轴,然后是绘制到葡萄糖时间的数据,对不起,我已经制作了 jsfiddle。我正在使用反应。
我需要的:
您可以使用 Chart.js 内置的 time
axis.
诀窍是为 x 轴提供正确的配置值:
unit: hour
- 报价基于小时。stepSize: 3
- 报价每三小时显示一次。min: "2015-06-12T00:00"
- 报价从一天的开始开始。max: "2015-06-13T00:00"
- 报价在第二天开始时结束。
只要您提供的数据集正确排序(按日期时间顺序),您应该会得到如下代码段所示的结果:
new Chart(document.getElementById("chart"), {
type: "line",
data: {
datasets: [{
data: [{
t: "2015-06-12T00:49:50+00:00",
y: 85
},
{
t: "2015-06-12T07:09:03+00:00",
y: 77
},
{
t: "2015-06-12T11:23:15+00:00",
y: 58,
},
{
t: "2015-06-12T16:00:58+00:00",
y: 110
},
{
t: "2015-06-12T19:35:01+00:00",
y: 97
},
{
t: "2015-06-12T21:15:50+00:00",
y: 142
}
]
}]
},
options: {
scales: {
xAxes: [{
type: "time",
time: {
unit: "hour",
stepSize: 3,
min: "2015-06-12T00:00",
max: "2015-06-13T00:00",
displayFormats: {
hour: 'HH:mm'
}
}
}]
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.min.js"></script>
<canvas id="chart"></canvas>