r - 具有透明背景但字体可见的ggrepel标签

标签 r ggplot2 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()

enter image description here

最佳答案

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))

这对我有用。您可以使用颜色设置 alpha。由于填充设置只是背景,因此文本不受影响。叠加文本的优点是您仍然可以使用“排斥”来防止文本重叠,而不必担心让两层正确对齐

关于r - 具有透明背景但字体可见的ggrepel标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48557889/

相关文章:

在 Rstudio 中读取 HDFS block

r - 创建新的强调命令 R Markdown

r - ggplot : re-order categorical y-axis (Gantt chart)

r - 从 ggplot 中消除 NA

删除使用plotmath制作的ggrepel标签之间的空间

r - ggplot2:饼图而不是 xy 散点图中的点

r - 每行某些列的单元格求和

R:ggplot2,如何一次向绘图添加多个图层以减少代码

r - 标记绘图区域外的线尾

python - pylab : plotting points with colors and labels (IDs, 不是类别)