在创建既有颜色又有形状的ggplot图例中,有一种方法可以将形状和颜色合并,但基于一个变量。我想知道如果该变量分为两个变量是否可能。
这是一个测试数据:
为了展示我想要的图例,我需要将这两个变量合并:
这是一个测试数据:
(x <- data.frame(time =rep(1:5,4)
, sex = rep(c("m","f"), each=5)
, val_type = rep(c("obs","fit"),each=10)
, val = rep(1:4,each=5)*rep(1:5,4)
)
)
为了展示我想要的图例,我需要将这两个变量合并:
x$sv <- paste(x$sex,x$val_type,sep='-')
以下是只包含一个变量的 ggplot 图表:
ggplot(data=x, aes(x=time, y=val, linetype=sv, col=sv)) +
geom_line() +
scale_colour_manual(name = ""
, values=c("red","red","blue","blue")
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
) +
scale_linetype_manual(name = ""
, values=c(1,2,1,2)
, labels=c("Female fitted","Female observed"
,"Male fitted","Male observed")
)
以下是情节:
我想使用这两个变量分别展示相同的图例。
ggplot(data=x, aes(x=time, y=val, linetype=val_type, col=sex)) +
geom_line()
这可行吗?我不想创建不必要的变量进行分析,因此希望不使用组合变量。另一个原因是想手动自定义图例。
感谢您的帮助。