在 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") )
希望对大家有所帮助!
我正在尝试使用 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") )
希望对大家有所帮助!