con*_*nor 6 transparency visualization alpha r ggplot2
我正在使用ggplot为所有点绘制具有恒定透明度值的许多点.
我发现圆形点的填充比其单独的边界更加透明,因此边界明显比填充更明亮(我在黑暗的背景上绘制光圈).
library(ggplot2)
set.seed(123)
data <- data.frame( x = sample(1:100,2000, replace=T),
y = sample(1:100,2000, replace=T) )
ggplot(data, aes(x,y)) +
geom_point(alpha=0.2, color="dodgerblue", fill="dodgerblue", size=4) +
theme(panel.background = element_rect(fill = 'black', colour = 'black'))
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会这样做,所以关于为什么会发生这种情况的信息会很棒.
可能的解决方案是使边框和填充相同的透明度,或使边框100%透明(设置边框,比如背景颜色,当点重叠时会破坏视觉效果).我不知道怎么做其中任何一个.
*以下讨论后添加了编辑*
在RStudio查看器中查看绘图或保存的PNG时会出现此问题.查看已保存的PDF时不会显示.然而,我的真实数据集很大,矢量图形在绘制大量点时效率低,所以我想要一个替代解决方案!
鉴于您想要具有恒定颜色和不透明度的磁盘,最简单的方法是为我修复它,同样在 RStudio 绘图预览窗口中只需使用选项shape=16:
data <- data.frame( x = sample(1:100,2000, replace=T),
y = sample(1:100,2000, replace=T) )
ggplot(d, aes(x,y)) +
geom_point(alpha=0.2, color="dodgerblue", size=5, shape=16) +
theme(panel.background = element_rect(fill = 'black', colour = 'black'))
Run Code Online (Sandbox Code Playgroud)
或者,shape=21100% 半透明填充
fill=adjustcolor("dodgerblue",alpha.f=0)也适用:
ggplot(data, aes(x,y)) +
geom_point(alpha=0.2, fill=adjustcolor("dodgerblue",alpha.f=0), size=5, shape=21) +
theme(panel.background = element_rect(fill = 'black', colour = 'black'))
Run Code Online (Sandbox Code Playgroud)
stroke=0按照当前接受的答案中的建议使用似乎并不能完全解决我的问题(振铃效应会稍微消失但不完全消失,这至少在 Windows 上):
ggplot(data, aes(x,y)) +
geom_point(alpha=0.2, colour="dodgerblue", fill="dodgerblue", stroke=0, size=5) +
theme(panel.background = element_rect(fill = 'black', colour = 'black'))
Run Code Online (Sandbox Code Playgroud)
将行程更改为 0 似乎达到了预期的结果:
ggplot(data, aes(x,y)) +
geom_point(alpha=0.2, colour="dodgerblue", fill=mycol, stroke=0, size=5) +
theme(panel.background = element_rect(fill = 'black', colour = 'black'))
Run Code Online (Sandbox Code Playgroud)