gpt4 book ai didi

r - ggplotly 和 lubridate : Hoover shows seconds, 不是分钟

转载 作者:行者123 更新时间:2023-12-04 08:36:26 26 4
gpt4 key购买 nike

我使用 ggplot 创建了一个箱线图,其中包含以下 data.frame:

library(lubridate)
library(ggplot2)
library(ggplotly)

df <- data.frame(
time = c("00:43:20", "00:44:30","00:45:40"),
sex = c("m","m","m")
)

df$sex <- factor(df$sex)
df$time <- lubridate::hms(df$time)
现在我用 ggplot 创建了我的箱线图
g <- ggplot(df) +
geom_boxplot(aes(sex, time)) +
scale_y_time()
一切看起来都很好,现在可以与 ggploty() 互动:
plotly::ggplotly(g)
enter image description here
但是当我在箱线图上徘徊时,我只看到秒,而不是 lubridate 格式。
我怎样才能看到 y 轴上显示的数据?

最佳答案

从我的理解来看,这个问题相当复杂。主要问题似乎是 lubridate 将时间存储为句点。因此,您可以像 ggplot 一样在 plotly 中获得秒数,它们也是秒数,它们只是通过“scale_y_time”在比例尺上进行转换。
根据我的理解,工作是将时间值转换为分钟的数值。虽然这意味着逗号/点后一分钟会有 100 秒:
ggplot 的第一个选项:

library(plotly)
library(ggplot)
library(lubridate)
# calculate time as minutes passed and get it as numeriic
mins <- as.numeric(lubridate::hms(df$time) - hms("00:00:00"))/60

df$sex <- factor(df$sex)
df$time <- mins

g <- ggplot2::ggplot(df) +
ggplot2::geom_boxplot(aes(sex, time))

plotly::ggplotly(g)
enter image description here
直接使用 plotly 的第二个选项(仅对于文本数据不确定是否可以将性 F 添加为 x 或者是否需要第二次跟踪并且还需要完成一些化妆品......无论如何ggplot给出了相同的结果)
plotly::plot_ly(y = ~mins, type = "box")
enter image description here
可能有更好的解决方案-我在过去 2 小时内无法弄清楚;(

关于r - ggplotly 和 lubridate : Hoover shows seconds, 不是分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64776096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com