私は、このサイトの周りを見渡し、特定の列の値に従ってhjustとvjustを設定する方法についてよく見てきました。データが構造化された(しかし、長年にわたって多くのエントリの単純化したサブセットである)される方法を示しています。私はacheiveしたいことはベース vjust値であるggplotによる条件付きテキストの書式設定
YearStart <- c(2001,2002,2003,2001,2002,2003)
Team <- c("MU","MU","MU","MC","MC","MC")
Attendance <- c(67586,67601,67640,33058,34564,46834)
Position <- c(3,1,3,1,9,16)
offset <-c()
df <- data.frame(YearStart,Team,Attendance,Position)
ので
> head(df)
YearStart Team Attendance Position
1 2001 MU 67586 3
2 2002 MU 67601 1
3 2003 MU 67640 3
4 2001 MC 33058 1
5 2002 MC 34564 9
6 2003 MC 46834 16
チームで以下では、MUは vjust = 1とMCあろうデータラベルは、それが関連付けられているデータ群の中からある場所vjust = -1私は制御することができるであろう。
私はチームの値が多いので、ルックアップテーブルを含む関数を使用するいくつかの例をハックしようとしましたが、文字列を渡すことができませんこれらの線に沿ってAES法を介して機能:
lut <- list(MU=1,MC=-1)
vj <-function(x){lut[[x]]}
p=ggplot(df, aes(YearStart, Attendance, label=Position, group=Team))+
geom_point()+
geom_text(aes(vjust = vj(Team)))
print(p)
次の擬似(ISH)点の上下の各位置に各グループに二回、ラベルを適用するコードです。
p=ggplot(df, aes(YearStart, Attendance, label=Position, group=Team))+
geom_point()+
geom_text(aes(Team="MU"), vjust=1)+
geom_text(aes(Team="MC"), vjust=-1)
print(p)
私はこれにはいくつかの他の方法を試してみたと私は私が間違った方向からこれをしようとしているか、私はちょうどggplot構文の非常に些細な部分が欠落してるかどうかわかりません。私はExcelで手作業でラベル付けすることでストップギャップソリューションを完成させましたが、それは持続不可能です:-)
の回答を参照するためにあなたの質問を編集しないでください。これは非常に混乱します。あなたが特定のポイントを明確にしたい場合は、是非それをしてください。あなたが答えにコメントしたいなら、答えに続くコメントの中に適切な場所があります。 – Andrie
これは明らかですので、私は質問を元に戻しました。しかし、それを行う前に、あなたの新しいコードに間違いがあることに気付きました。 Rは大文字と小文字を区別し、data.frameでは 'Offset'を使用しましたが、' ggplot'呼び出しでは 'offset'を使用したことに注意してください。 – Andrie