ggplot2:geom_point 的边框和填充的不同 alpha 值
ggplot2: different alpha values for border and filling of geom_point
我想使用 geom_point 将我的数据绘制为点图。我的数据点重叠,所以我想使用抖动和透明度来增加可见性。现在我还想为每个数据点添加一个边框,让 reader 更容易看到每个数据点。但是,由于 alpha,看起来我的数据点周围有光环。这就是为什么我只想对填充使用 alpha 而对边框使用 alpha=0。但到目前为止我还没有找到解决办法。我可以绘制两个 geom_points,一个比另一个稍大,以在每个点周围创建一个边界,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"))
还有一些数据:
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
这是图表的细节,它显示了我正在谈论的光环。我猜它来自填充和边框重叠一点。这就是为什么我在灰色区域内看到这条 draker 线。不幸的是,更改笔划值只会增加光晕效果。
我将图表保存为 .tif 文件:
tiff('C:/_..._..._.tif', bg = "white", res = 1600, width = 115, height = 160, units = "mm", compression="lzw")
期待您的建议。
干杯
安妮
这应该适合你:
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))
告诉我
为了实现我想要的情节,我将使用 position_nudge
函数。
首先,我创建了一个具有与数据点相同长度的均匀概率分布的微调向量。这可以按如下方式完成
set.seed(10)
nudgeWidth = 0.5
nudgeVec <- (runif(nrow(comp24))-0.5)*nudgeWidth
现在我使用上面的微移向量“nudgeVec
”来获得所需的图
plot1 <- ggplot(data=comp24, aes(x=spatial, y=lnfit, backgroundColor="white", na.rm=T))
plot1 <- plot1 + geom_point(position=position_nudge(x = nudgeVec),size=10.75,aes(alpha=0.2, stroke=0.5,shape=(as.integer(comp24$spatial)+14)))
plot1 <- plot1 + scale_colour_identity()
plot1 <- plot1 + scale_shape_identity()
plot1 <- plot1 + geom_point(position = position_nudge(x = nudgeVec),size=10.75,aes(alpha=1, stroke=0.5, colour="black",shape=(as.integer(spatial)-1)))
plot1
输出看起来像这样
一种更简单的方法(此处可用,因为您希望所有的 alpha 和颜色都相同)是使用 alpha
在 geom_point
命令中指定填充。或者,也可以 "old-fashioned" 使用两个额外的十六进制代码指定透明度的方法,例如 #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)
我想使用 geom_point 将我的数据绘制为点图。我的数据点重叠,所以我想使用抖动和透明度来增加可见性。现在我还想为每个数据点添加一个边框,让 reader 更容易看到每个数据点。但是,由于 alpha,看起来我的数据点周围有光环。这就是为什么我只想对填充使用 alpha 而对边框使用 alpha=0。但到目前为止我还没有找到解决办法。我可以绘制两个 geom_points,一个比另一个稍大,以在每个点周围创建一个边界,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"))
还有一些数据:
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
这是图表的细节,它显示了我正在谈论的光环。我猜它来自填充和边框重叠一点。这就是为什么我在灰色区域内看到这条 draker 线。不幸的是,更改笔划值只会增加光晕效果。
我将图表保存为 .tif 文件:
tiff('C:/_..._..._.tif', bg = "white", res = 1600, width = 115, height = 160, units = "mm", compression="lzw")
期待您的建议。
干杯 安妮
这应该适合你:
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))
告诉我
为了实现我想要的情节,我将使用 position_nudge
函数。
首先,我创建了一个具有与数据点相同长度的均匀概率分布的微调向量。这可以按如下方式完成
set.seed(10)
nudgeWidth = 0.5
nudgeVec <- (runif(nrow(comp24))-0.5)*nudgeWidth
现在我使用上面的微移向量“nudgeVec
”来获得所需的图
plot1 <- ggplot(data=comp24, aes(x=spatial, y=lnfit, backgroundColor="white", na.rm=T))
plot1 <- plot1 + geom_point(position=position_nudge(x = nudgeVec),size=10.75,aes(alpha=0.2, stroke=0.5,shape=(as.integer(comp24$spatial)+14)))
plot1 <- plot1 + scale_colour_identity()
plot1 <- plot1 + scale_shape_identity()
plot1 <- plot1 + geom_point(position = position_nudge(x = nudgeVec),size=10.75,aes(alpha=1, stroke=0.5, colour="black",shape=(as.integer(spatial)-1)))
plot1
输出看起来像这样
一种更简单的方法(此处可用,因为您希望所有的 alpha 和颜色都相同)是使用 alpha
在 geom_point
命令中指定填充。或者,也可以 "old-fashioned" 使用两个额外的十六进制代码指定透明度的方法,例如 #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)