ggplot 点中的轻微点描边

geo*_*ory 3 r ggplot2

考虑以下:

图书馆(ggplot2)

df = data.frame(x = rep(0,9), y = rep(0,9), alp = c(1:8/20,1))
ggplot(df) + 
  geom_point(aes(x, y, alpha=alp), size = 20, col = 'red') + 
  theme_minimal() + facet_wrap(~ alp) + guides(alpha = F)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

正如你所看到的,有虚幻的轮廓。它使叠加许多低透明度点看起来有点像青蛙生成。这只是Mac的事情吗?知道如何删除它吗?

San*_*att 5

ggplot2 的默认点形状是pch = 19. 它不是可以分别控制其边框和内部颜色的那些点之一;例如,在下面,fill = 'black'没有任何影响。

library(ggplot2)

df = data.frame(x =runif(1000), y = runif(1000))

p = ggplot(df) + 
geom_point(aes(x, y), alpha = .1, size = 5, fill = 'black', colour = 'red') +                                        
  theme_bw() 
p
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

然而,这个点确实有一条边界线。线的宽度可以用stroke; 如下:

p = ggplot(df) + 
geom_point(aes(x, y), stroke = 2, alpha = .1, size = 5, fill = 'black', colour = 'red') +                                        
  theme_bw() 
p
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

不幸的是,将stroke 设置为零不会删除边界线;似乎有一个下限。

要移除边界线,请使用具有可操作边界的形状之一;例如,shape = 21。将其“填充”设置为红色,将其“颜色”设置为透明。

p = ggplot(df) + 
geom_point(aes(x, y), shape = 21, alpha = .1, size = 5, fill = 'red', colour = 'transparent') +                                      
  theme_bw() 
p
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明