在facet_grid中调整One Line的线型

fab*_*abb 3 r facet ggplot2

我有一个类似于这个的情节:

b <- data.frame(x=c(1,2,3,1,2,3,1,2,3,1,2,3),y=c(1,2,3,1.5,1.9,2.5,3,2,1,2.9,1.8,1.5),c=c("1","1","1","2","2","2","1","1","1","2","2","2"),f=c("b","b","b","b","b","b","a","a","a","a","a","a"))
ggplot(b,aes(x=x,y=y,color=c,group=c))+geom_line()+facet_grid(f ~ .)
Run Code Online (Sandbox Code Playgroud)

现在我只希望上面"a"中的"1"行更粗并且是虚线.这可能吗?

jor*_*ran 7

关于ggplot2你要学习的第一个也是最重要的事情之一是,当你想要在你的绘图上出现一些东西时,你通常会在数据框中创建一个代表你想要显示的视觉信息的变量. .

在您的情况下,您需要一个变量,仅从面板a,第1行中选择那些观察结果:

b$grp <- with(b,(f == "a") & (c == 1))
Run Code Online (Sandbox Code Playgroud)

然后,你可以映射都sizelinetype这个变量,并手动调整尺度:

library(scales)
ggplot(b,aes(x=x,y=y)) + 
    geom_line(aes(color=c,group=c,size = grp,linetype = grp)) + 
    facet_grid(f ~ .) + 
    scale_size_manual(values = c(0.5,1.2),guide = "none") + 
    scale_linetype_manual(values = c('solid','dashed'),guide = "none")
Run Code Online (Sandbox Code Playgroud)