javascript - 定义字符串 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 订购。
我尝试提供按枚举排序的数据,但随后数据点来回移动,因为顺序对时间线很重要。
我想过在开始时按顺序添加所有枚举值的假点,但我显然不希望它们可见。
有什么我可以尝试的技巧吗?
谢谢!
解决方案
解决方案是将 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>
推荐阅读
- python - 如何使用 sys.modules 和 mock.patch 进行模拟(Python 对静态函数的干扰)
- javascript - Puppeteer 打开下拉菜单,然后单击 [1st 2nd 3rd...] 选项
- android - React Native Expo:在 ViewPager 中放置相机
- python - Discord BOT - DM 离开服务器的人
- c++ - SDL2 Windows 未定义对 Eclipse 的“WinMain@16”的引用
- ios - 在 SwiftUI 中使用谷歌登录时来自 OIDAuthorizationService 的 NSInvalidArgumentException
- regex - 如何以非贪婪的方式从许多实例中匹配“{*各种*字符串*}”?
- vb.net - 无法加载错误版本的 SQL Server 程序集
- python - 在新的 for 循环中使用存储在旧 for 循环中的项目名称
- oracle - 找不到 Oracle Apex AOP 服务器。检查它是否正在运行