2017-10-04 1 views
0

ggplot2の2つのレイヤーが重複しないようにするにはどうすればよいですか?私は彼らがポイントの上に寝ていないようにテキストを表示しようとします。ggplot2でgeom_pointとgeom_textが重複しないようにする

check_overlapテキストが重なり合うのを避けて、他のレイヤーと重ならないようにするのはすばらしい仕事です。

私はライブラリgeom_text_repelも試しましたが、このライブラリはcheck_overlapをサポートせず、すべてのデータポイントのテキストを表示しています。

しかし、私はすべてのポイントのテキストを持っている必要はありません、check_overlapのように。

ggplot(dat, aes(x = CPI, y = HDI)) + 
    geom_point(aes(color = Region), shape=21, size=4, position = "identity") + 
    geom_text(data = dat, aes(label = Country), size=4, check_overlap = TRUE) 
+5

[ 'ggrepel'](https://cran.r-project.org/web/packages/ggrepel/index.html) – hrbrmstr

+0

あなたはそれぞれの繰り返しラベルを削除できますデータポイント、そしてggrepelから 'geom_text_repel'を使用しますか? –

+0

私は 'geom_text_repel'を試しましたが、' geom_point'にあるすべてのデータポイントのラベルやテキストを表示します。 – Max

答えて

0

geom_text_repel空の文字列""のためのテキストラベルを作成しません。しかし、テキストラベルは、ラベルのないデータポイントから遠ざかります。

これを試してみてください:

# Hide text labels for the first 3 data points 
idx <- c(1,2,3) 

dat$CountryLabel  <- dat$Country 
dat$CountryLabel[idx] <- "" 

library(ggrepel) 
ggplot(...) + geom_text_repel(data = dat, aes(label = CountryLabel)) 
関連する問題