javascript - 如何为 Plotly.JS 返回一个无限循环的数组?
问题描述
我目前正在学习如何使用 plotlyJS 并且遇到了麻烦。我可以使用以下函数创建一个无限滚动线条
function getData() {
return Math.random ();
}
这很好,但我想无限循环特定数字。
我希望能够写出类似...
function getData() {
return [0.5,0.5,1,2,4.5,0.5, ... ];
}
我的问题是,当我运行它时,会显示点,但没有像使用 Math.random(); 那样的无限滚动效果。我不确定是否应该在函数内部创建一个 for 循环或找到不同的方法。
我是 JavaScript 新手,所以我正在通过项目学习,到目前为止我学到了很多东西,但我被困住了。
谢谢阅读。
解决方案
您可以使用生成器函数无限循环您的数组。
var trace1 = {
x: [1, 2, 3, 4],
y: [1, 2, 3, 4],
type: 'scatter',
};
var data = [trace1];
var chartDiv = document.getElementById('myDiv');
Plotly.newPlot('myDiv', data, {}, {});
var myArray = [0.5,1,2,4.5];
var generateData = function* (array) {
var index = 0;
while(true) {
yield array[index++ % array.length];
}
}
var xValue = 5
var dataGenerator = generateData(myArray);
var addData = () => {
setTimeout(() => {
Plotly.extendTraces(chartDiv, {x: [[xValue++]], y: [[dataGenerator.next().value]]}, [0]);
addData();
}, 1000);
}
addData();
<head>
<!-- Plotly.js -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
<div id="myDiv"></div>
</body>
推荐阅读
- javascript - 如何测量多次调用异步函数的时间
- reactjs - 如何使用 Props 初始化组件状态并对此状态进行一些更改?
- java - 在 BiFunction 中存储另一个类的静态函数时出错
- macos - macOS v10.15 (Catalina) / x64 上的自修改代码
- reactjs - 如果字段为空,则禁用提交按钮
- sql - Jooq 文本数组生成为对象数组
- javascript - 在 React JS 中过滤嵌套数组
- javascript - 如何拆分 javascript 数组并替换其中的元素?
- json - 如何使用 Bash 在 json 文件中查找内容
- python-3.x - 具有用户输入的笛卡尔积