我从一个2 x 2的研究设计中创建了一个 ggplot 图,并且想使用2种颜色和2个符号来分类我的4种不同的治疗组合。目前我有2个图例,一个为颜色和一个为两个形状。如何将它们组合成一个图例,从而得到一个蓝色圆圈、一个红色圆圈、一个蓝色三角形和一个读取三角形?
一些数据:
state1 <- c(rep(c(rep("N", 7), rep("Y", 7)), 2))
year <- rep(c(2003:2009), 4)
group1 <- c(rep("C", 14), rep("E", 14))
group2 <- paste(state1, group1, sep = "")
beta <- c(0.16,0.15,0.08,0.08,0.18,0.48,0.14,0.19,0.00,0.00,0.04,0.08,0.27,0.03,0.11,0.12,0.09,0.09,0.10,0.19,0.16,0.00,0.11,0.07,0.08,0.09,0.19,0.10)
lcl <- c(0.13,0.12,0.05,0.05,0.12,0.35,0.06,0.13,0.00,0.00,0.01,0.04,0.20,0.00,0.09,0.09,0.06,0.06,0.07,0.15,0.11,0.00,0.07,0.03,0.05,0.06,0.15,0.06)
ucl <- c(0.20,0.20,0.13,0.14,0.27,0.61,0.28,0.27,0.00,1.00,0.16,0.16,0.36,0.82,0.14,0.15,0.13,0.13,0.15,0.23,0.21,0.00,0.15,0.14,0.12,0.12,0.23,0.16)
data <- data.frame(state1,year,group1,group2,beta,lcl,ucl)
情节:
library(ggplot2)
pd <- position_dodge(.65)
ggplot(data = data, aes(x = year, y = beta, colour = state1, group = group2, shape = group1)) +
geom_point(position = pd, size = 4) +
geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) +
scale_colour_hue(name = "Treatment & State", #Legend label, use darker colors
labels = c("Control", "Exclosure"),
l = 40) +
scale_shape(name = "State", labels = c("Non-F", "Flwr"))