2017-09-13 57 views
0

我试图创建一个使用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图文:

enter image description here

回答

1

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) 

enter image description here

scale_alpha_manual()不会对这个情节有任何影响,因为你不与aes(alpha = ...)映射任何东西。

+1

对于任何已经完成类似操作的人,发现您最终得到了一个alpha值的图例条目,您可以删除图例的alpha位,同时保留位的颜色为: scale_alpha_continuous (指南= F)+ 以前人们建议我修改原来的答复,以改善它,我已经做到了,但遭到拒绝... – James