ggplot点中的轻微笔画

时间:2016-06-28 16:05:39

标签: 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)

enter image description here

正如你所看到的那样有假动作。它使得覆盖许多低透明度的点看起来有点像frogspawn。这只是Mac的事吗?知道如何删除它吗?

2 个答案:

答案 0 :(得分:4)

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

enter image description here

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

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

enter image description here

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

要移除边界线,请使用其中一个具有可操作边框的形状;例如,shape = 21。设置"填充"红色和它的颜色"透明。

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

enter image description here

答案 1 :(得分:1)

see::geom_point2绘制没有该边框的点。

library(ggplot2)
library(see)

df = data.frame(x = rep(0,9), y = rep(0,9), alp = c(1:8/20,1))

ggplot(df) + 
  geom_point2(aes(x, y, alpha=alp), size = 20, col = 'red') + 
  theme_minimal() + facet_wrap(~ alp) + guides(alpha = F)

reprex package(v0.3.0)于2020-05-14创建