在一个带有时间戳的图中有R条多行

在一个带有时间戳的图中有R条多行,r,graph,ggplot2,R,Graph,Ggplot2,我想在一张图上有三个值。到目前为止,如果我将时间戳转换为日期,我可以有3行 MyData$Timestamp <- as.Date(MyData$Timestamp) 有没有办法将时间戳转换为日期和时间 您可以使用lubridate将时间戳转换为日期/时间。您还需要从宽-长格式转换数据帧,其中一列表示变量名,另一列表示变量值tidyr::gather可以做到这一点 我不会将所有变量放在一个图上,因为血压测量值与脉搏测量值的单位不同。双y轴是一种可能但不推荐的解决方案 我还想知道,像你的例

我想在一张图上有三个值。到目前为止,如果我将时间戳转换为日期,我可以有3行

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()