Javascript 如何以绘图方式更新第二个轴的数据?

Javascript 如何以绘图方式更新第二个轴的数据?,javascript,plotly,plotly.js,Javascript,Plotly,Plotly.js,代码如下: var trace1={ x:[1,2,3],, y:[40,50,60], 名称:“yaxis数据”, 键入:“散布” }; 变量trace2={ x:[2,3,4], y:[4,5,6], 名称:“yaxis2数据”, yaxis:‘y2’, 键入:“散布” }; var数据=[trace1,trace2]; 变量布局={ 标题:“双Y轴示例”, yaxis:{title:'yaxis title'}, yaxis2:{ 标题:“亚西2号标题”, 标题字体:{color:'rg

代码如下:

var trace1={
x:[1,2,3],,
y:[40,50,60],
名称:“yaxis数据”,
键入:“散布”
};
变量trace2={
x:[2,3,4],
y:[4,5,6],
名称:“yaxis2数据”,
yaxis:‘y2’,
键入:“散布”
};
var数据=[trace1,trace2];
变量布局={
标题:“双Y轴示例”,
yaxis:{title:'yaxis title'},
yaxis2:{
标题:“亚西2号标题”,
标题字体:{color:'rgb(148103189)},
勾选字体:{color:'rgb(148103189)},
覆盖:“y”,
一边:“对”
}
};
Plotly.newPlot('myDiv',数据,布局)

您要查找的是
绘图。react
绘图。addTraces
/
绘图。deleteTraces
。这是你的电话号码

为了更新数据,不能对数据进行变异。您需要创建一个新的数据不可变实例()

因此,您可以通过以下方式复制数据:

Plotly.react('myDiv', data.map((trace, i) => {
  if (i != 1) return trace;
  return <new trace>
})
以下是在1秒超时后更新绘图的示例:
var trace1={
x:[1,2,3],,
y:[40,50,60],
名称:“yaxis数据”,
键入:“散布”
};
变量trace2={
x:[2,3,4],
y:[4,5,6],
名称:“yaxis2数据”,
yaxis:‘y2’,
键入:“散布”
};
var数据=[trace1,trace2];
变量布局={
标题:“双Y轴示例”,
yaxis:{title:'yaxis title'},
yaxis2:{
标题:“亚西2号标题”,
标题字体:{color:'rgb(148103189)},
勾选字体:{color:'rgb(148103189)},
覆盖:“y”,
一边:“对”
}
};
Plotly.newPlot('myDiv',数据,布局);
设置超时(()=>{
常数newTrace={
x:[2,3,4],
y:[4,10,20],
名称:“yaxis2数据”,
yaxis:‘y2’,
键入:“散布”
}
//删除第二条记录道(索引1)或使用Plotly删除多条记录道。删除记录道('myDiv',[0,1])
Plotly.deleteTraces('myDiv',1);
//添加新跟踪
Plotly.addTraces('myDiv',newTrace);
},1000)


没有人可以帮我处理javascript查询吗?我有不同的问题,但没有人回答。我想即使是这个查询也还没有激活。请大家至少在这方面帮助我。您是否试图将
trace2
更改为其他内容,并重新绘制数据,而不在
trace1
中重新填充数据?@KevinBai是的。我不想在绘制完trace1后再次传递它。查看plot.ly的文档,
plot.react
允许您通过传入新数组并进行差异(因此它不会重新绘制未更改的数据)进行更新。您也可以使用
Plot.removeTrace
然后,
Plot.addTrace
删除数据并读取。@KevinBai谢谢您的参考,但您能告诉我在我的情况下它将如何工作吗?如果可能的话,请使用我的例子,并给出一个演示作为答案。这将帮助所有访问此问题的人。谢谢。。我以后再试试。但我想这是有帮助的。
const newTrace = {...} // some trace object
Plotly.deleteTraces('myDiv', 1); // remove at index 1
Plotly.addTraces('myDiv', newTrace);