2016-05-23 19 views
4

我使用ggplot为所有点绘制了一个常数透明度值的许多点。ggplot阿尔法水平在填充和点的边界上出现不同

我发现圆形点的填充比它们各自的边界更透明,因此边界明显比填充明显(我在黑色背景上绘制光圈)。

The effect is that they look like rings rather than semi-transparent circles.

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

我不知道为什么它这样做,这样的信息,为什么发生这种情况将是巨大的。

可能的解决方案是制作边框并填充相同的透明度,或者使边框100%透明(将边框设置为背景颜色,会在点重叠时破坏视觉效果)。我不知道如何做到这一点。

*编辑下面*

观看的观众RStudio或保存的PNG的情节时,出现问题的讨论之后。它在查看保存的PDF时不会显示。但是,我的真实数据集很大,矢量图形在绘制大量点时效率很低,所以我很乐意提供其他解决方案!

+0

请使用'dput'将足够数量的数据集用于测试。 –

+0

@ 42只需添加足够的代码即可完全重现问题。 – conor

+0

@baptiste设置'color = NA'代替当前的'color =“dodgerblue”'使点完全消失,而不仅仅是边界。你能否举一个如何应用你的第二个建议的例子? – conor

回答

3

更改行程为0似乎有HTE期望的结果:

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')) 
+0

这似乎会略微减少标记的大小,但“环”效果对我来说依然很清晰。点上有明显的边界。我只是一个半透明的点。 – conor

+0

我没有看到任何戒指。我想知道你是否看到你的观众的神器或幻觉。你有没有尝试保存到矢量图形文件格式并把它炸掉? –

+0

伟大的一点。保存为PDF并查看该问题后,我看不到该问题,无论是否带有“笔划”参数。我正在使用内置的RStudio查看器,并且在保存为PNG时问题仍然存在。但是,由于我的实际数据中有大量的点数和矢量图形对点的低效率,我希望能够保存为例如。 PNG没有这个问题。我会编辑我的问题来反映这一点。 – conor

1

与@ 42讨论后,该解决方案是,PNG默认已经足够低,分辨率标记和图像背景之间的边界有一个混合神器(可能不是正确的术语)。

增加dpi可解决问题,并且添加stroke=0看起来好一点。

ggsave("plot.png", 
    ggplot(data, aes(x,y)) + 
    geom_point(alpha=0.2, color="dodgerblue", fill="dodgerblue", size=4, stroke=0) + 
    theme(panel.background = element_rect(fill = 'black', colour = 'black')), 
    dpi=1200) 
0

既然你想时时彩&透明度做固定对我来说,也是在RStudio打印预览窗口最简单的事情磁盘只是使用选项shape=16

d <- 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=4, shape=16) + 
    theme(panel.background = element_rect(fill = 'black', colour = 'black')) 

PS使用shape=21和100%半透明颜色 color=adjustcolor("dodgerblue",alpha.f=0)原则上也应该可以工作,但由于某些原因在RStudio图预览窗口中不能正确显示,并且添加stroke=0也似乎不会帮助