time - Plotly 刻度格式 - 毫秒到 HH:MM
问题描述
我有下面的 PlotlyJS 图表,它是用下面的代码制作的。我有一个函数可以遍历按时间顺序排列的事件列表(在本例中是日出、日落和暮光之城)。它创建子列表,这些列表是特定日期的每个事件的开始和持续时间(以毫秒为单位)。目前 x 轴显示毫秒,并且迹线显示正确。
我的问题是如何格式化刻度标签,使它们不是数百万而是 HH:MM 格式?
我在 Plotly 网站上查看了有关刻度格式的信息,但似乎没有什么适合我的需要!
每个跟踪都使用以下内容构建:
var trace = {x: [duration],
base: start,
y: [startDate.format('DD-MM-YY')],
orientation: 'h',
marker: { color: solarEventColors[sunStatus[i+1]], width: 1},
type: 'bar',
opacity: 0.5,
}
dataArray.push(trace)
PlotlyJS 图表使用的布局是:
var layoutSunChart = {title: 'Solar Events by Time',
barmode: 'relative',
bargroupgap: 0.4,
yaxis: {type: 'category',
autorange: "reversed",
fixedrange: true,
showgrid : false,
automargin: true,
},
xaxis : {
tickmode: "linear",
tick0: 0,
dtick: 8640000, // milliseconds
fixedrange: true,
zeroline : false,
showgrid : false,
automargin: true,
title: 'Time (hh:mm)'
},
autosize: true,
showlegend: false,
paper_bgcolor: '#E9ECEF',
plot_bgcolor:'rgba(0,0,0,0)',
//hovermode: 'closest',
staticPlot: true,
}
解决方案
我猜你弄错了x轴和y轴。但如果我做对了,你想显示毫秒吗?因此,您需要使用以下两种刻度格式之一:
tickformat: '%d/%m/%Y %H:%M:%S.%f
, 只显示有意义的数字(如果没有给出毫秒,至少 .0)
或者
tickformat: '%d/%m/%Y %H:%M:%S.%L'
, 显示所有毫秒(甚至 0.000)
但是如果你想显示所有的数字,你可以把.f
它放在 tickformat 中。像这样的东西:
tickformat: '.3f'
例如,这样,您将显示 3 个小数位。
推荐阅读
- python - PermissionError:[Errno 13] 权限被拒绝:.deepface
- javascript - Angular 12:当父级使用私有属性作为构造函数参数时,如何实现超类和子类(组件)的继承?
- postgresql - 如何在 JPA 的查询中忽略区分大小写?
- visual-studio-code - 使用 devcontainer.json 中的 postCreateCommand 在 vscode 中打开文件
- hugo - 使用“hugo new”添加页面包
- reactjs - 有没有办法可以防止 IDM 在使用我的网站的任何用户的 PC 上自动下载 pdf
- security - 限制给定 API 的端点子集的 GCP API 密钥
- firebase - 管理客户端 API 密钥的正确 Firestore 架构是什么?
- pyspark - Databricks“数据”->“表”功能不起作用
- python - 嵌套 else 和 if 方法