背景は透明だがフォントは見える ggrepel ラベル 質問する

背景は透明だがフォントは見える ggrepel ラベル 質問する

'geom_label_repel' 内のフォントだけを取得しalpha=1て、背景だけを取得する方法はあるでしょうかalpha=.2?

問題は、非常に密度の高いプロットになることです。テキストだけを使用すると、テキストは読めなくなります。透明度のないラベルを使用すると、ラベルは完全に読めますが、ラベルの後ろが見えません。ラベルに透明度を選択すると、フォントも透明になり、背景とのコントラストが不十分になるため、フォントも読めなくなります。

私が本当に欲しいのは、フォントの周りに白い影があることです :-)

問題を示す最小限の例を以下に示します。

library(ggplot2)
library(ggrepel)
library(stringi)

set.seed(1)
df <- data.frame(x=rnorm(10000),
                 y=rnorm(10000),
                 label=NA)
df$label[1:26] <- stringi::stri_rand_strings(26,8)

ggplot(df, aes(x, y)) +
  geom_point(alpha=.3) +
  geom_label_repel(aes(label=label),
                   label.size = NA, 
                   alpha = 0.6, 
                   label.padding=.1, 
                   na.rm=TRUE) +
  theme_bw()

ここに画像の説明を入力してください

ベストアンサー1

ggplot(df, aes(x, y)) +
  geom_point(alpha=.3) +
  geom_label_repel(aes(label=label),
                       label.size = NA,  
                       label.padding=.1, 
                       na.rm=TRUE,
                       fill = alpha(c("white"),0.5))

これは私の場合はうまくいきました。アルファを色で設定できます。塗りつぶし設定は背景のみなので、テキストは影響を受けません。テキストを重ねる場合の利点は、テキストが重ならないように「反発」を使用できることです。2 つのレイヤーを適切に並べる必要はありません。

おすすめ記事