首页 > 解决方案 > Geom_smooth 没有出现在简单的情节中

问题描述

ggplot(R3L12, aes(x=Time, y=HeartRate)) +
  geom_point() +
  geom_smooth()

这是 dput(head(R3L12, 20)) 的输出

structure(list(Date = c("2015-05-23", "2015-05-23", "2015-05-23", 
"2015-05-23", "2015-05-23", "2015-05-23", "2015-05-23", "2015-05-23", 
"2015-05-23", "2015-05-23", "2015-05-23", "2015-05-23", "2015-05-23", 
"2015-05-23", "2015-05-23", "2015-05-23", "2015-05-23", "2015-05-23", 
"2015-05-23", "2015-05-23"), Time = c("07:25:00", "07:40:00", 
"07:45:00", "09:10:00", "11:45:00", "11:55:00", "12:05:00", "12:35:00", 
"12:45:00", "13:30:00", "13:40:00", "13:45:00", "13:55:00", "14:00:00", 
"14:05:00", "14:10:00", "14:20:00", "14:25:00", "14:30:00", "14:35:00"
), Turtle = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("R3L1", "R3L11", 
"R3L12", "R3L2", "R3L4", "R3L8", "R3L9", "R4L8", "R8L1", "R8L4", 
"R8NAT123"), class = "factor"), HeartRate = c(7.56457, 6.66759, 
17.51107, 9.72277, 19.44553, 13.07674, 28.115, 14.99467, 17.16947, 
40.40479, 37.76642, 29.98933, 43.5329, 49.61471, 47.74245, 44.10196, 
21.35316, 44.68609, 49.25255, 29.98933)), row.names = c(NA, 20L
), class = "data.frame")

这是我尝试创建的情节的代码。我很困惑,因为当我绘制它时,geom_smooth 没有出现。Time是因子变量,并且HeartRate是双精度变量。我是 R 新手,所以如果您需要更多信息,请告诉我!

在此处输入图像描述

标签: rggplot2

解决方案


如果时间间隔不均匀(例如这种情况),并且您希望 x 轴点之间的距离反映经过的实际时间,则必须将时间变量转换为 POSIXct 对象。这也可能会改变平滑线的显示方式,因为点的密度将在 x 轴上发生变化。

R3L12$time.posix <- as.POSIXlt(paste(R3L12$Date, R3L12$Time), format="%Y-%m-%d %H:%M:%S")
ggplot(R3L12, aes(x=time.posix, y=HeartRate)) +
   geom_point() +
   geom_smooth()

在此处输入图像描述


推荐阅读