
124
5
章 散布図
aes(x = healthexp + 100, label = Name),
size = 3,
hjust = 0,
position = position_nudge(x = 100, y = -0.2)
)
図5-34 左:元の散布図 右:ラベルを右下に少し動かした散布図
いくつかの点だけにラベルを表示したく、しかも、位置は自動的に決めたい場合はデータフレームに
列を追加し、表示したいラベルを保持しておきます。そうするための
1
つの例としては、まず、使おう
としているデータのコピーを作成し、
Name
列の値を
plotname
列にコピーします。その際、ファクタを
文字列ベクトルに変換します。この変換の理由は後述します。
cdat <- countries %>%
filter(Year == 2009, healthexp > 2000) %>%
mutate(plotname = as.character(Name))
これで
plotname
は文字列ベクトルになっているので、
ifelse()
関数と
%in
演算子を使って、各行の
plotname
がプロットに表示したい名前のリスト(次のコードのように手動で指定したリスト)に含まれ
ているかを特定することができます。
%in%
演算子は、真偽値のベクトルを返すので、
ifelse()
関数を
使って
plotname
が指定した名前リストに含まれていなかったものすべてを空白に置換することができ
ます。
countrylist <- c("Canada", ...