Определите порядок строковых элементов оси Y - PullRequest
0 голосов
/ 05 мая 2020

У меня есть набор данных, содержащий значение перечисления и отметку времени:

var trace = {
  x: [1,2,3,4,5,6], // numbers for simplicity
  y: ['FOUR','TWO','THREE','FIVE','ONE','FOUR'],
  mode: 'lines+markers',
  type: 'scatter'
};
 Plotly.newPlot('graph', [trace]);
div.plotly-notifier {
  visibility: hidden;
}
<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
  <div id="graph"></div>
</body>

enter image description here

Plotly добавляет элементы оси Y по мере их поступления, но Я хотел бы, чтобы они были заказаны из ONE-FIVE.

Я попытался передать данные, отсортированные по enum, но затем точки данных go туда и обратно, потому что порядок имеет значение для временной шкалы.

Я думал о добавлении фальшивых точек в начале со всеми значениями перечисления по порядку, но я, очевидно, не хочу, чтобы они были видны.

Могу ли я попробовать какие-нибудь уловки?

Спасибо!

1 Ответ

0 голосов
/ 05 мая 2020

Решение состоит в том, чтобы поместить числовые c значения в y и таблицу поиска в макет.

var trace = {
  x: {
        tickmode: 'array',
        tickvals: [1,2,3,4,5,6]
},
  y: [4,2,3,5,1,4],
  mode: 'lines+markers',
  type: 'scatter'
};
var layout = {
  yaxis: {
    tickvals: [1,2,3,4,5],
    ticktext: ['ONE', 'TWO', 'THREE', 'FOUR', 'FIVE'],
  }
};
Plotly.newPlot('graph', [trace], layout);
div.plotly-notifier {
  visibility: hidden;
}
<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
  <div id="graph"></div>
</body>
...