You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly教程:如何移除X轴时间刻度标签的前导0

移除Plotly时间轴刻度的前导0

嘿,这个问题我之前也碰到过!Plotly默认的时间刻度格式化确实会给12小时制的早间时间加上前导0,不过咱们可以通过精准的自定义设置轻松解决,看我给你整理的方案:

最稳妥的解决方法:手动指定刻度标签

直接把时间格式化成你想要的样子,再告诉Plotly用这些文本作为刻度,完全可控:

修改后的完整代码如下:

library(plotly)
# Data
start <- as.POSIXct("2018-01-01 00:00:00", tz = "America/Chicago")
end <- as.POSIXct("2018-01-02 00:00:00", tz = "America/Chicago")
times <- seq.POSIXt(start, end, by = "60 mins")
df <- data.frame(x = times, y = seq_along(times))

# 生成不带前导0的刻度文本:先转格式再去掉多余空格
tick_labels <- trimws(strftime(times, "%l:%M %p"))

# 绘制图表并设置自定义刻度
plot_ly(df, x = ~x, y = ~y, type = "scatter", mode = "lines+markers") %>%
  layout(
    xaxis = list(
      tickmode = "array",  # 开启自定义刻度模式
      tickvals = ~x,       # 对应原始的时间数据值
      ticktext = tick_labels,  # 我们自定义的不带前导0的标签
      title = "一天中的时间"
    )
  )

关键细节解释:

  • strftime(times, "%l:%M %p"):把POSIX时间转成类似" 5:00 AM"的格式(注意小时前有个空格)
  • trimws():去掉这个多余的前导空格,最终得到干净的"5:00 AM"格式
  • 用tickmode = "array"让Plotly完全遵循我们指定的刻度值和显示文本,不会再自动加前导0

这样你的X轴就会完美显示不带前导0的时间标签啦,比如5:00 AM、6:00 AM,完全符合需求!

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:31:51