Javascript Plotly addtrace/relayout提供与newPlot不同的输出

Javascript Plotly addtrace/relayout提供与newPlot不同的输出,javascript,plotly,Javascript,Plotly,我有一个简单的绘图,有两个轨迹和两个yaxis规格。当我同时使用newPlot绘制它们时,我得到了所需的结果。当我一次绘制一个轨迹(和布局)时,我会得到不同的结果,这不是我想要的 使用newPlot 使用addTraces/relayout Javascript: Plotly.newPlot("graph",[{}],{title: "Plot"}); trace1 = {y: [1,2,1]}; trace2 = { y: [0,0,0], yaxis: "y2",

我有一个简单的绘图,有两个轨迹和两个yaxis规格。当我同时使用
newPlot
绘制它们时,我得到了所需的结果。当我一次绘制一个轨迹(和布局)时,我会得到不同的结果,这不是我想要的

使用
newPlot

使用
addTraces
/
relayout

Javascript:

Plotly.newPlot("graph",[{}],{title: "Plot"});

trace1 = {y: [1,2,1]};
trace2 = {
    y: [0,0,0], 
  yaxis: "y2", 
  mode: "markers", 
  marker: {symbol: 6, size: 12}
};
yaxis1 = {domain: [0, 0.8], title: "one"};
yaxis2 = {
    domain: [0.85, 1.0],
  showgrid: false,
  showticklabels: false,
  title: "two",
  zeroline: false
};

Plotly.addTraces('graph', [trace1]);
Plotly.relayout('graph', {yaxis1});

Plotly.addTraces('graph', [trace2]);
Plotly.relayout('graph', {yaxis2});

//Plotly.newPlot('graph',[trace1, trace2],{yaxis1, yaxis2});

问题在于您的第一次
Plotly.newPlot
调用。您正在传入一个默认为不可见散射跟踪的空跟踪对象

这意味着第一次
Plotly.addTraces
调用中的跟踪实际上是图形的第二条跟踪(默认情况下以橙色绘制),第二次
Plotly.addTraces
调用中的跟踪实际上是图形的第三条跟踪(默认情况下以绿色绘制)

因此,通过将第一行更改为

Plotly.newPlot("graph",[],{title: "Plot"});

您将得到所需的结果图。

解决方案是,您需要在
添加跟踪
之前调用
relayat
。Ettiene(etpinard)为我找到了另一个问题的解决方案

它也解决了这个问题

Plotly.newPlot("graph",[],{title: "Plot"});

trace1 = {y: [1,2,1]};
trace2 = {
    y: [0,0,0], 
  yaxis: "y2", 
  mode: "markers", 
  marker: {symbol: 6, size: 12}
};
yaxis1 = {domain: [0, 0.8], title: "one"};
yaxis2 = {
    domain: [0.85, 1.0],
  showgrid: false,
  showticklabels: false,
  title: "two",
  zeroline: false
};

Plotly.relayout('graph', {yaxis1});
Plotly.addTraces('graph', [trace1]);

Plotly.relayout('graph', {yaxis2});
Plotly.addTraces('graph', [trace2]);

//Plotly.newPlot('graph',[trace1, trace2],{yaxis1, yaxis2});

哦,有意思……这是一个微妙的观点。然而,我用这个调整创建了一个新的小提琴,问题仍然存在。我看不到你更新的小提琴有任何问题。你能详细说明一下吗?对不起,我关上标签之前一定忘了点击更新。现在看。。。