Как сделать так, чтобы мои субплоты Plotly использовали один и тот же диапазон оси Y? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть точечная диаграмма с 3-мя подпунктами, которые имеют общую ось X. Я хочу, чтобы каждый субплот использовал одинаковый диапазон для оси Y, то есть начиная с 0. Я пытался использовать rangemode='tozero', но это не работает. Любые идеи будут высоко оценены!

См. https://codepen.io/kbreuer/pen/XWWqwde

var trace1 = {
  x: [0, 1, 2],
  y: [2, 3, 4],
  type: 'scatter'
};

var trace2 = {
  x: [2, 3, 4],
  y: [3, 4, 5],
  yaxis: 'y2',
  type: 'scatter'
};

var trace3 = {
  x: [3, 4, 5],
  y: [1, 2, 3],
  yaxis: 'y3',
  type: 'scatter'
};

var data = [trace1, trace2, trace3];

var layout = {
  yaxis: {rangemode: 'tozero'},
  y2axis: {rangemode: 'tozero'},
  y3axis: {rangemode: 'tozero'},
  grid: {
    rows: 3,
    columns: 1,
    subplots: [['xy'], ['xy2'], ['xy3']]
   },
};

Plotly.newPlot('myDiv', data, layout);

1 Ответ

0 голосов
/ 08 ноября 2019

Вы почти получили это. Есть только небольшая проблема с вашим layout определением.

И y2axis, и y3axis не будут распознаны, так как я верю, что Plotly принимает соглашение, согласно которому любые дополнительные оси будут иметь постфиксный идентификационный номер. ,Другими словами, вы хотите:

var layout = {
  yaxis: {rangemode: 'tozero'},
  yaxis2: {rangemode: 'tozero'},
  yaxis3: {rangemode: 'tozero'},
  grid: {
    rows: 3,
    columns: 1,
    subplots: [['xy'], ['xy2'], ['xy3']]
   },
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...