ggplot2:geom_point的边框和填充使用不同的Alpha值

Ann*_*nne 7 alpha r border ggplot2

我想使用geom_point将数据绘制为点图。我的数据点重叠,因此我想使用抖动和透明度来增加可见性。现在,我还要在每个数据点上添加边框,以使读者更容易看到每个数据点。但是,由于存在Alpha,我的数据点似乎周围有光晕。这就是为什么我只想对填充使用alpha,对边框使用alpha = 0的原因。但是到目前为止,我还没有找到解决方案。我可以绘制两个geom_point,一个比另一个大一点,以在每个点周围创建一个带有alpha = 0的边界。但是因为我需要抖动,所以相同的数据点不会相互重叠。有谁知道如何解决这个问题?

这是我的代码:

ggplot(data=comp24, aes(x=spatial, y=lnfit, colour=spatial, fill=spatial, shape=spatial, backgroundColor="white", na.rm=T))+
geom_point(position=position_jitter(w=0.5), size=1.75, alpha=0.2, stroke=0.3)+
scale_colour_manual(name="spatial structure", values = c("black", "black", "black"))+
scale_fill_manual(name="spatial structure", values = c("black","black", "black"))
Run Code Online (Sandbox Code Playgroud)

和一些数据:

spatial focal competitor       lnfit
low   pco        pch -1.79175947
low   pco        pch -1.49165488
low   pco        pch -0.98082925
low   pco        pch -1.97716269
intermediate   pco        pch -0.84729786
intermediate   pco        pch -0.48379695
intermediate   pco        pch -0.64574494
intermediate   pco        pch -0.51082562
intermediate   pco        pch  1.43693809
high   pco        pch  0.89608802
high   pco        pch  0.04879016
high   pco        pch -2.20625398
high   pco        pch  0.31003898
high   pco        pch -0.01694956
Run Code Online (Sandbox Code Playgroud)

这是图形的详细信息,显示了我正在谈论的光晕。我猜它来自填充和边框重叠。这就是为什么我在灰色区域中看到这条垂线。不幸的是,更改笔划值只会增加光晕效果。

我使用以下命令将图形另存为.tif:

tiff('C:/_..._..._.tif', bg = "white", res = 1600, width = 115, height = 160, units = "mm", compression="lzw")
Run Code Online (Sandbox Code Playgroud)

期待您的建议。

干杯安妮

R_S*_*SOF 7

这应该适合你:

ggplot(data=comp24, aes(x=spatial, y=lnfit, colour=spatial, fill=spatial, shape=spatial, backgroundColor="white", na.rm=T))+
geom_point(position=position_jitter(w=0.5), size=1.75, stroke=0.3)+
scale_colour_manual(name="spatial structure", values = c("black", "black", "black"))+
scale_fill_manual(name="spatial structure", values =alpha(c("black","black", "black"),0.2))
Run Code Online (Sandbox Code Playgroud)

让我知道

  • 你的代码不起作用。需要`scale_shape_manual(name =“空间结构”,values = c(21:23))`。 (2认同)
  • 为什么“aes”中有“backgroundColor=”white“”和“na.rm=T”? (2认同)

Aar*_*ica 6

一种更简单的方法,在这里可用,因为您希望所有的 alpha 和颜色都相同,是geom_point使用alpha. 或者,也可以使用两个额外的十六进制代码来指定透明度的“老式”方法,例如,#00000044.

ggplot(data=comp24, aes(x=spatial, y=lnfit, shape=spatial)) +
   geom_point(position=position_jitter(width=0.5), size=1.75, 
              fill=alpha("black", 0.2), stroke=0.3)
Run Code Online (Sandbox Code Playgroud)