3

私はこれに似たプロットを持っています:

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 ~ .)

ここで、上部ファセット「a」の「1」の線だけを太く、破線にします。これは可能ですか?

4

1 に答える 1

7

ggplot2について最初に学ぼうとしている最も重要なことの 1 つは、プロットに何かを表示したい場合、通常、表示したい視覚情報を表す変数をデータ フレームに作成することです。 .

あなたの場合、パネル a の 1 行目からこれらの観測のみを選択する変数が必要です。

b$grp <- with(b,(f == "a") & (c == 1))

次に、 と の両方をこの変数にマップ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")
于 2012-06-03T14:29:07.887 に答える