【问题标题】:Connecting mean points of a line plot in ggplot2在ggplot2中连接线图的平均点
【发布时间】:2021-05-09 10:21:29
【问题描述】:

我有一个包含以下列的示例数据集:PATIENTID(患者 ID)、VISITNUMBER(他们到医院的次数)、TIME(自首次就诊以来的年数)、HEALTH(他们的健康状况)。我正在尝试随着时间的推移绘制 HEALTH。

这是我在 R 中的代码:

# data structure
PATIENTID <- c(126, 126, 126, 255, 255, 389, 389, 389, 389, 389, 470, 470, 470)
VISITNUMBER <- c(1, 2, 3, 1, 2, 1, 2, 3, 4, 5, 1, 2, 3)
TIME<- c(0, 4, 6, 0, 3, 0, 1, 2, 3, 4, 0, 1, 2)
HEALTH <- c(0.333, 0.452, 0.468, 0.571, 0.522, 0.444, 0.452, 0.431, 0.510, 0.532, 0.214, 0.333, 0.400)

mydata <- data.frame(PATIENTID, VISITNUMBER, TIME, HEALTH)


# converting patient ID and visit number to factor 

mydata$PATIENTID   <- factor(mydata$PATIENTID)
mydata$VISITNUMBER <- factor(mydata$VISITNUMBER)

# creating a spagetti plot of health over time 

sp_HEALTH <- ggplot(data = mydata, aes(TIME, HEALTH, group=PATIENTID))
sp_HEALTH + 
  geom_line() + 
  stat_smooth(aes(group=1), method = "lm", se = FALSE) + 
  stat_summary(aes(group=1), geom = "point", fun.y = mean, 
               shape = 17, size = 3, col = "red")

这是我根据这段代码生成的情节:

我的问题是我试图找出一种方法来使用从点到点的蓝线连接平均点(在上面的链接中以红色显示),但我得到了这种直线回归类型的线。我希望它像常规线图如何使用线连接点(请单击下面的链接)。如何插入连接平均点的线?

谢谢!

【问题讨论】:

标签: r ggplot2 plot


【解决方案1】:

也许更容易使用dplyr::mutate 计算平均值,然后为患者值和平均值添加单独的几何?

library(dplyr)
library(ggplot2)

mydata %>% 
  mutate(PATIENTID = factor(PATIENTID)) %>% 
  group_by(TIME) %>% 
  mutate(MEAN = mean(HEALTH)) %>% 
  ungroup() %>% 
  ggplot() + 
  geom_line(aes(TIME, HEALTH, group = PATIENTID)) + 
  geom_line(aes(TIME, MEAN), color = "blue") + 
  geom_point(aes(TIME, MEAN), color = "red", size = 3, shape = 17)

或者您可以添加第二个stat_summarygeom = "line"。请注意,在这两种情况下,aes() 是如何在 geom 中使用的,而不是 ggplot()

mydata %>% 
  ggplot() +
  geom_line(aes(TIME, HEALTH, group=PATIENTID)) + 
  stat_summary(aes(TIME, HEALTH), geom = "point", fun = mean, shape = 17, size = 3, col = "red") + 
  stat_summary(aes(TIME, HEALTH), geom = "line",  fun = mean, col = "blue")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多