Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将ggplot中点的alpha设置为数字向量_R_Plot_Ggplot2_Alpha - Fatal编程技术网

R 将ggplot中点的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创建NMDS图。除了点(社区/集合)和外壳等的标准绘图外,我还想调整每个点的alpha

我已经从0-1(称为“Alpha”)计算了一个数值向量,它反映了与每个点对应的调查的时间,我想用它来修改每个点的Alpha。到目前为止,我一直在使用以下主题的变体:

 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)
#模拟你的阿尔法
Alpha
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)
#模拟你的阿尔法

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