我有一个简单的绘图,其中包含两个轨迹和两个yaxis规范。当我使用newPlot同时绘制它们时,得到了期望的结果。一次绘制迹线(和布局)时,会得到不同的结果,这不是我想要的。

使用newPlot

javascript - 绘图addTraces/relayout给出与newPlot不同的输出-LMLPHP

使用addTraces / relayout

javascript - 绘图addTraces/relayout给出与newPlot不同的输出-LMLPHP

https://jsfiddle.net/abalter/eatszatj/

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"});


您将获得所需的结果图。

关于javascript - 绘图addTraces/relayout给出与newPlot不同的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36974231/

10-11 23:35