このコードで:
library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()
p + geom_point() + geom_text(aes(wt, mpg, label=row.names(mtcars)))
このグラフを取得します:

上記のコードを変更して、ポイント wherewt > 4またはのみにラベルを付けmpg > 25、残りのポイントにはラベルを付けないようにするにはどうすればよいですか。
にdata引数を与えgeom_textます:
library(ggplot2)
mtcars$name <- row.names(mtcars)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()
p + geom_point() +
geom_text(data=subset(mtcars, wt > 4 | mpg > 25),
aes(wt,mpg,label=name))
結果のプロット:

PS: 私は本当にp + geom()ggplot を構築するスタイルのファンではありません。同じプロットのさまざまな変更を示すために、ハドリーが元の ggplot2 本でそれを行ったと確信していますが、人々はそれを拾い上げて実行したようです. これが私がそれを行う方法です:
+各中間ステップを保存しないでください。ggsave()ggplot呼び出しに入れ、必要に応じて他のもののみを変更します私のバージョン:
ggplot(mtcars, aes(wt, mpg, label=name)) +
geom_point() +
geom_text(data=subset(mtcars, wt > 4 | mpg > 25))
subsetレイヤーに引数を渡すことができます。あなたの場合、行名を列として持つ必要があるため、適切に評価されます。構文を簡単にするplyr関数を取得するには、明示的にロードする必要があります。.
# shamelessly using @marius initial code
library(ggplot2)
library(plyr)
mtcars$name <- row.names(mtcars)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point() + geom_text(aes(wt,mpg,label=name), subset = .(wt > 4 | mpg > 25))
追加の変数を取得できます。
carnames <- row.names(mtcars)
carnames[with(mtcars, !(wt > 4 | mpg > 25))] <- ""
p + geom_point() + geom_text(aes(wt,mpg,label=carnames))
ggplot2 のような格子ソリューション :-)
library(latticeExtra)
xyplot(mpg~wt, data=mtcars,pch=19,
panel =function(x,y,...){
# panel.xyplot(x,y,...)
data=subset(mtcars, wt > 4 | mpg > 25)
panel.text(data$wt,data$mpg,label=row.names(data),
col='red',cex=2)
},par.settings = ggplot2like(), axis = axis.grid)
