首页 > 解决方案 > 定义字符串 y 轴项的顺序

问题描述

我有一个包含枚举值和时间戳的数据集:

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>

在此处输入图像描述

Plotly 正在添加 y 轴项目,但我想让它们从 ONE-FIVE 订购。

我尝试提供按枚举排序的数据,但随后数据点来回移动,因为顺序对时间线很重要。

我想过在开始时按顺序添加所有枚举值的假点,但我显然不希望它们可见。

有什么我可以尝试的技巧吗?

谢谢!

标签: javascriptplotly

解决方案


解决方案是将 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>


推荐阅读