2017-11-23 22 views
2

ggplot2でグラフィックを作成しましたが、いくつかのラベルが重なっています。私は重複することなくすべてのラベルを表示したい。それは可能ですか?どうやって? geom_textにオプション "check_overlap"があることを知っています。ここでは、重複していない場合にラベルを表示したり表示したりしません。しかし、これは私が望むものではありません。私はすべてのラベルを表示したいと思います。R:重複するラベルを避ける方法

マイコード:

ggplot(data, aes(x=DRTG, y=ORTG)) + 
    geom_point(colour = "#000000") + 
    ggtitle("Gráfico Liga DIA: Ratio Ofensivo/Ratio Defensivo (hasta jornada 8)") + 
    geom_text(label=rownames(data), colour = "#000000", nudge_x = 0, nudge_y = 1, size = 4, fontface = "bold", check_overlap = F) + 
    geom_point(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, colour="red", size = 1)) + 
    geom_vline(xintercept = pointMedia[, "mediaDRTG"], colour = "green") + 
    geom_hline(yintercept = pointMedia[, "mediaORTG"], colour = "blue") + 
    geom_text(data=pointMedia, aes(x=mediaDRTG, y=mediaORTG, label="Liga DIA"), nudge_x = 0, nudge_y = 1, colour = "red", fontface = "bold") + 
    theme(legend.position = "none") + 
    geom_abline(intercept =0 , slope = 1, colour = "orange")+ xlim(70,115) + ylim(70,115) 

とそのラベルの一部に重複する画像:以前にコメントした答えとして

enter image description here

+1

テキスト位置をベクトルとして指定することもできます: 'nudge_y = c(1,1、...、0.6,1.2、...)'? – Heikki

+0

mmmm面白い音...私はそれを試してみるよ!なぜなら、もし私が何をしたいのかラベルを動かすことができれば...ラベルが重なっていないかもしれないからです! –

+0

それは動作します! Heikkiありがとう! –

答えて

0

投稿。代わりにgeom_textためnudge_yためのひとつの定数値を渡すの

ggplot(data, aes(x=DRTG, y=ORTG)) + 
    geom_text(label=rownames(data), colour = "#000000", 
      nudge_x = 0, nudge_y = 1, size = 4, fontface = "bold", check_overlap = F) 

は...あなたはmy_nudge_yのように、完全なベクトルを渡すことがあります。あなたがに個別に調整使用

my_nudge_y=c(1,1,...,0.6,1.2,...) 
ggplot(data, aes(x=DRTG, y=ORTG)) + 
    geom_text(label=rownames(data), colour = "#000000", 
    nudge_x = 0, nudge_y = my_nudge_y, size = 4, fontface = "bold", check_overlap = F) 

文字列の位置。

オーバーラップを解決することは、比較的少ない数のテキストが既に存在するため、プロット領域がテキストで埋め尽くされるため、一般的には非常に簡単な問題ではありません。

+0

はい、良い解決策ですが、ggrepelライブラリの使用を推奨する他のソリューションを提供する他のソリューションを確認してください –

関連する問題