点的ggplot阿尔法设置为一个数字矢量
问题描述:
我试图创建一个使用ggplot的NMDS情节。除了标准绘制点(社区/集合体)和船体等,我还想调整每个点的阿尔法。点的ggplot阿尔法设置为一个数字矢量
我已经计算出的数值的从0-1的矢量(称为“阿尔法”),其反映了对应于每个点和我想用它来修改每个点的α调查的定时。我迄今使用的变化上的主题是:
ggplot() +
geom_point(data = data.scores, aes(x = NMDS1, y = NMDS2, colour =Treatment), size = 3) +
scale_colour_manual(values = c("Burnt" = "black", "Grazed" = "tan4","Control" = "green4")) +
scale_alpha_manual(values = Alpha) +
geom_polygon(data = hull.data, aes(x = NMDS1, y = NMDS2, colour = Treatment),
linetype = "dashed", fill = NA) +
coord_equal() +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"),
legend.position="top")
这不仅让我阴谋,所有的点的alpha为1,阿尔法是不是1,但被设置为相同的值(大概是在我的向量中的第一个值)或错误消息。有谁知道我做错了什么?
仅供参考我能创造我想用基础R图形很容易的话,但我需要我的阴谋是ggplot图文:
答
ggplot()
语法预计被映射为一个层的值在该层中传递,因此在geom_point()
中,而不是通过添加比例。所以现在你没有定义你想要应用alpha比例的图层,因此全部显示为alpha = 1
(默认值)。
您只需直接使用geom_point()
原始载体。使用重复的例子,与mtcars
:
library(ggplot2)
set.seed(1)
# sim your Alpha
Alpha <- runif(nrow(mtcars))
ggplot(data = mtcars, aes(mpg, hp)) +
geom_point(alpha = Alpha)
scale_alpha_manual()
不会对这个情节有任何影响,因为你不与aes(alpha = ...)
映射任何东西。
对于任何已经完成类似操作的人,发现您最终得到了一个alpha值的图例条目,您可以删除图例的alpha位,同时保留位的颜色为: scale_alpha_continuous (指南= F)+ 以前人们建议我修改原来的答复,以改善它,我已经做到了,但遭到拒绝... – James