使用ggplot2中的geom_segment在y轴上对变量进行分组

时间:2013-08-26 18:33:49

标签: r ggplot2

我正在使用分段线图,并希望根据因子(在本例中为患者ID)对y轴进行分组。如何更改y上的刻度线的宽度,以便患者按其ID分组,并且每个唯一ID只给出一个标签?

我的数据和情节的一个例子如下。

ggplot(data) +
  geom_segment(aes(x=age1, xend=age2, 
                   y=PatientID, yend=PatientID, colour=mortality)) + 
  scale_colour_manual(values=c("green", "red", "black"))

数据:

PatientID   age1     age2    mortality
11313          0        30        low
11313          31       50        low 
11313          51       65        med  
11313          0        10        med
11313          0        50        hi 
131NY          0        30        med
143CA          24       27        hi
165099         23       45        med
165099         46       55        hi 
165099         40       55        med

1 个答案:

答案 0 :(得分:0)

我已经使用了提供的示例数据,但输出似乎与问题中描述的所需输出类似。患者按ID分组,每个只有一个标签(见下面的11313)。我错过了什么吗?

screenshot

library(ggplot2)

mytext <- "PatientID,age1,age2,mortality
11313,0,30,low
11313,31,50,low
11313,51,65,med
131NY,0,30,med
143CA,24,27,hi
165099,23,45,med
165099,46,55,hi"

dat <- read.table(textConnection(mytext), sep = ",",
                  check.names = FALSE,
                  strip.white = TRUE,
                  header = TRUE)

ggplot(dat) +
    geom_segment(aes(x = age1, xend = age2,
                     y = PatientID, yend = PatientID, colour = mortality)) +
    scale_colour_manual(values = c("green", "red", "black"))