7

ggplot2 を使用して散布図を作成したいと思います。これには、すべてのデータ ポイント (それらがどのグループからのものかに関係なく) を通る回帰直線が含まれますが、同時にグループ化変数によってマーカーの形状が変化します。以下のコードは、グループ マーカーを生成しますが、グループごとに 1 つずつ、2 つの回帰直線が表示されます。

#model=lm(df, ParamY~ParamX)
p1<-ggplot(df,aes(x=ParamX,y=ParamY,shape=group)) + geom_point() + stat_smooth(method=lm)

どうすればそれをプログラムできますか?

4

1 に答える 1

12

aesで完全にやり直してgeom_point別のレイヤーを追加する必要はありません。形状aesgeom_point呼び出しに移動するだけです。

df <- data.frame(x=1:10,y=1:100+5,grouping = c(rep("a",10),rep("b",10)))
ggplot(df,aes(x=x,y=y)) + 
geom_point(aes(shape=grouping)) + 
stat_smooth(method=lm)

ここに画像の説明を入力

編集:

あなたのコメントを助けるために:

annotateとにかく、私にとっては、各ファセットに同じラベルが付けられる可能性があるためです。data.frame私は、ファセットの変数と、使用したいラベルを表す別の列を持つファセット レベルを持つミニを作成するのが好きです。この場合、ラベル データ フレームは と呼ばれdfalbsます。

次に、これを使用してデータ フレームにラベルを付け、ファセットに個別にラベルを付けます。

df <- data.frame(x=1:10,y=1:10,grouping =   
                  c(rep("a",5),rep("b",5)),faceting=c(rep(c("oneR2","twoR2"),5)))


dflabs <- data.frame(faceting=c("oneR2","twoR2"),posx=c(7.5,7.5),posy=c(2.5,2.5))

ggplot(df,aes(x=x,y=y,group=faceting)) + 
       geom_point(aes(shape=grouping),size=5) + 
       stat_smooth(method=lm) +
       facet_wrap( ~ faceting) +
       geom_text(data=dflabs,aes(x=posx,y=posy,label=faceting))

ここに画像の説明を入力

于 2013-01-14T12:10:14.810 に答える