在一个带有时间戳的图中有R条多行
我想在一张图上有三个值。到目前为止,如果我将时间戳转换为日期,我可以有3行在一个带有时间戳的图中有R条多行,r,graph,ggplot2,R,Graph,Ggplot2,我想在一张图上有三个值。到目前为止,如果我将时间戳转换为日期,我可以有3行 MyData$Timestamp <- as.Date(MyData$Timestamp) 有没有办法将时间戳转换为日期和时间 您可以使用lubridate将时间戳转换为日期/时间。您还需要从宽-长格式转换数据帧,其中一列表示变量名,另一列表示变量值tidyr::gather可以做到这一点 我不会将所有变量放在一个图上,因为血压测量值与脉搏测量值的单位不同。双y轴是一种可能但不推荐的解决方案 我还想知道,像你的例
MyData$Timestamp <- as.Date(MyData$Timestamp)
有没有办法将时间戳转换为日期和时间 您可以使用
lubridate
将时间戳转换为日期/时间。您还需要从宽-长格式转换数据帧,其中一列表示变量名,另一列表示变量值tidyr::gather
可以做到这一点
我不会将所有变量放在一个图上,因为血压测量值与脉搏测量值的单位不同。双y轴是一种可能但不推荐的解决方案
我还想知道,像你的例子一样,是否可以同时有不同的值?鉴于数据的性质,我认为这不太可能
所以这里有一个可能的解决方案,使用facet。我已经从这个绘图的示例数据中删除了第3行
library(dplyr)
library(tidyr)
library(ggplot2)
library(lubridate)
MyData %>%
mutate(ts = ymd_hms(Timestamp)) %>%
# next line just drops row 3
slice(c(1:2, 4)) %>%
gather(var, val, -Timestamp, -ts) %>%
# reorder the variables for facets
mutate(var = factor(var, levels = c("Systolic.pressure", "Diastolic.pressure", "Pulse"))) %>%
ggplot(aes(ts, val)) +
geom_line() +
facet_grid(var ~ ., scales = "free") +
labs(x = "timestamp", y = "value") +
theme_light()
?as.POSIXct
可能会有所帮助
library(dplyr)
library(tidyr)
library(ggplot2)
library(lubridate)
MyData %>%
mutate(ts = ymd_hms(Timestamp)) %>%
# next line just drops row 3
slice(c(1:2, 4)) %>%
gather(var, val, -Timestamp, -ts) %>%
# reorder the variables for facets
mutate(var = factor(var, levels = c("Systolic.pressure", "Diastolic.pressure", "Pulse"))) %>%
ggplot(aes(ts, val)) +
geom_line() +
facet_grid(var ~ ., scales = "free") +
labs(x = "timestamp", y = "value") +
theme_light()