javascript - 使用 react 和 chartjs 绘制流式实时数据
问题描述
我想用这个插件实时流式传输数据。但目前,我的图表显示相同的数据集并保持静态。即使我正在关注本网站的反应示例下面是我使用的代码:
import React from 'react';
import {Line} from 'react-chartjs-2';
import 'chartjs-plugin-streaming';
var createReactClass = require('create-react-class');
const data = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'Price',
fill: false,
lineTension: 0.1,
backgroundColor: 'rgba(75,192,192,0.4)',
borderColor: 'rgba(75,192,192,1)',
borderCapStyle: 'butt',
borderDash: [],
borderDashOffset: 0.0,
borderJoinStyle: 'miter',
pointBorderColor: 'rgba(75,192,192,1)',
pointBackgroundColor: '#fff',
pointBorderWidth: 1,
pointHoverRadius: 5,
pointHoverBackgroundColor: 'rgba(75,192,192,1)',
pointHoverBorderColor: 'rgba(220,220,220,1)',
pointHoverBorderWidth: 2,
pointRadius: 1,
pointHitRadius: 10,
data: [65, 59, 80, 81, 56, 55, 40]
}
]
};
export default createReactClass({
displayName: 'LineExample',
render() {
return (
<div>
<Line
data={data}
options={{
scales: {
xAxes: [{
realtime: {
onRefresh: function(chart) {
data.dataset.data.push({
x: Date.now(),
y: Math.random()
});
},
delay: 2000
}
}]
}
}}
/>
</div>
);
}
});
可能是什么问题呢?谢谢!
解决方案
您提供的数据格式错误,您正在尝试
data.dataset.data.push
但是您提供的数据只有 X 值。你需要重新格式化它,数据应该有这样的格式:{x:$(value), y:${value}}
在CodeSandbox中打开下面的代码片段
import React from "react";
import { Line } from "react-chartjs-2";
import "chartjs-plugin-streaming";
var createReactClass = require("create-react-class");
const data = {
datasets: [
{
label: "Dataset 1",
borderColor: "rgb(255, 99, 132)",
backgroundColor: "rgba(255, 99, 132, 0.5)",
lineTension: 0,
borderDash: [8, 4],
data: []
}
]
};
const options = {
scales: {
xAxes: [
{
type: "realtime",
realtime: {
onRefresh: function() {
data.datasets[0].data.push({
x: Date.now(),
y: Math.random() * 100
});
},
delay: 2000
}
}
]
}
};
export default createReactClass({
displayName: "LineExample",
render() {
return (
<div>
<Line data={data} options={options} />
</div>
);
}
});
推荐阅读
- r - 热图绘制时间与日期 ggplot
- markdown - 修改 Jekyll 中的链接行为
- c# - Xamarin.Forms CollectionView 中的数据绑定问题
- c# - Puppeteer - 在多个测试中运行 1 个浏览器实例
- excel - 能否通过 Office 365 部署 Excel 加载项工具栏 (.xlam)?
- regex - 如何连接字母表中相邻的 Kleene 星号?
- c++ - 使用带有 CMake 和 Conan 的外部库的未定义引用
- r - 如何从R中的给定文本中挖掘多词?
- excel - 如何将找到的列值 False 标记为零 | 电子表格 | 条件格式 |
- javascript - 一个字一个字怎么写?从数组中取出单词