在 R 中使用 Plotly 绘制显示毫秒的时间戳

Plot timestamps showing milliseconds with Plotly in R

我正在尝试使用 Plotly 绘制时间序列,其中包括毫秒。但是,Plotly 在显示数据时将每个时间戳四舍五入到最接近的秒数。我希望绘制数据,以便点沿 x 轴均匀分布,因此我没有得到您在下图中看到的这种 "step" 模式。

library(plotly)

# make some data
x <- seq(1, 10000, by=250)/1000
y <- 1:length(x)

# convert to POSIX
x <- as.POSIXct(x, origin='1970-01-01', tz='UTC')
# show milisecond format
format(x[1:5], "%Y-%m-%d %H:%M:%OS3")

# make data frame
data <- data.frame(x, y)

# make the plot with plotly
plot_ly(data, x=~x, y=~y, type='scatter', mode='lines+markers')

我尝试更改 x 轴刻度以显示毫秒,但这对我不起作用。

layout(xaxis = list(tickformat="%H:%M:%OS3"))

编辑: Mohanasundaram 的回答是一个很好的解决方法,但我正在寻找一种方法来实现这一点,同时保持 "POSIXct" 和 "POSIXt" 类。

问题是它们 x 没有足够的意义来区分毫秒。

library(plotly)

# make some data
x <- seq(1, 10, by=.25)
y <- 1:length(x)

# convert to POSIX
x <- as.POSIXct(x, origin='1970-01-01')
# show milisecond format

x <- format(x, "%Y-%m-%d %H:%M:%OS3")
# make data frame
data <- data.frame(x, y)

# make the plot with plotly
plot_ly(data, x=~x, y=~y, type='scatter', mode='lines+markers')

我遇到了类似的问题。我发现在我的脚本中添加 options("digits.secs"=6),在调用 plotly 之前,可以 plotly 知道我的 POSIXct 时间戳中存在的毫秒数。

我将时间戳格式化为:

df$Timestamp = as.POSIXct(D_blinks$Timestamp, format = "%Y-%m-%d %H:%M:%OS")

并要求 plotly 显示毫秒使用:

layout( xaxis = list(tickformat="%H:%M:%S.%L ms") )

希望对大家有所帮助!