我有一个复杂的情节,显示不同年份的患者等级的不同颜色的点,并且连接重复测量的不同颜色的线(相同的患者)在评分变化的两年中测量 . 如您所见,图例只是列出了两种颜色的线条 . 然而,我需要的是一个传奇,它有一个2009年的红点和一个2016年的蓝点(没有线!),还有一条我可以标记为“升级”的红线和一条我可以标记为“降级”的蓝线” . 所以我需要四个图例:2个点,2个线,4个标签 . 我已经对此进行了广泛的搜索,但找不到答案 .

这是我用来构建我想要的所有美学的情节代码:

sampledata <- structure(list(patient = c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 
5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 10L, 10L, 11L, 11L, 12L, 
12L, 13L, 13L, 14L, 14L, 15L, 15L, 16L, 16L, 17L, 17L, 18L, 18L, 
19L, 19L), grade = structure(c(5L, 5L, 5L, 5L, 5L, 1L, 5L, 1L, 
1L, 5L, 1L, 5L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 5L, 2L, 5L, 3L, 3L, 
3L, 3L, 2L, 4L, 2L, 4L, 4L, 1L, 4L, 1L, 4L, 2L, 4L, 2L), .Label = c("grade_I", 
"grade_II", "grade_III", "indeterminate", "normal"), class = "factor"), 
year = c(2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 
2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 
2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 
2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 2009L, 2016L, 
2009L, 2016L, 2009L, 2016L)), .Names = c("patient", "grade", 
"year"), class = "data.frame", row.names = c(NA, -38L))

yearf = factor(year)

gradef = factor(gradef, levels=c("normal", "grade_I", "grade_II", "grade_III", "indeterminate"))

p <- ggplot(data=guidegrades2, aes(x=gradef, y=patient, group=patient, color=yearf)) + 
    geom_point() + geom_line()
p + scale_colour_brewer(palette = "Set1") + 
    labs(x = "ASE Grade", y = "Patient", color = "ASE Guidelines")

pticks = p + scale_x_discrete(labels=c("grade_I" = "Grade I", "grade_II" = "Grade II",
    "grade_III" = "Grade III", "indeterminate" = "Indeterminate", "normal" = "Normal"))

ptheme = pticks + theme(panel.grid.minor = element_blank(), panel.grid.major = element_blank(), panel.background = element_blank(), legend.key = element_rect(fill = "white"), axis.line = element_line(), axis.title.x=element_text(vjust=0.0001)) 

paxes = ptheme + scale_colour_brewer(palette = "Set1") + 
    labs(x = "ASE Grade", y = "Patient", color = "ASE Guidelines")

The plot in question