R 将ggplot中点的alpha设置为数字向量
我正在尝试使用ggplot创建NMDS图。除了点(社区/集合)和外壳等的标准绘图外,我还想调整每个点的alpha 我已经从0-1(称为“Alpha”)计算了一个数值向量,它反映了与每个点对应的调查的时间,我想用它来修改每个点的Alpha。到目前为止,我一直在使用以下主题的变体:R 将ggplot中点的alpha设置为数字向量,r,plot,ggplot2,alpha,R,Plot,Ggplot2,Alpha,我正在尝试使用ggplot创建NMDS图。除了点(社区/集合)和外壳等的标准绘图外,我还想调整每个点的alpha 我已经从0-1(称为“Alpha”)计算了一个数值向量,它反映了与每个点对应的调查的时间,我想用它来修改每个点的Alpha。到目前为止,我一直在使用以下主题的变体: ggplot() + geom_point(data = data.scores, aes(x = NMDS1, y = NMDS2, colour =Treatment), size = 3) +
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的图,alpha不是1,但设置为相同的值(可能是向量中的第一个值)或错误消息。有人知道我做错了什么吗
作为参考,我可以很容易地使用base 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)
库(ggplot2)
种子(1)
#模拟你的阿尔法
Alphaggplot()
语法期望为层映射的值在该层中传递,因此在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)
库(ggplot2)
种子(1)
#模拟你的阿尔法
Alpha对于任何做过类似操作的人,如果发现您的Alpha值有一个图例条目,您可以删除图例的Alpha位,同时使用:scale_Alpha_continuous(guide=F)保持点颜色的位+在人们建议我编辑原始答案以改进它之前,我已经这样做了,但被拒绝了…@James-你不应该用F
代替FALSE
,因为F
不是R中的保留值(也不是t
)。也就是说,你可以运行一个脚本,为任何做过类似操作的人设置F,并发现你的alpha值有一个图例条目,你可以删除图例的alpha位,同时使用:scale_alpha_continuous(guide=F)保持点颜色的位+在人们建议我编辑原始答案以改进它之前,我已经这样做了,但被拒绝了…@James-你不应该用F
代替FALSE
,因为F
不是R中的保留值(也不是t
)。也就是说,您可以运行一个脚本来设置F