2014-10-05 67 views
1

我已经调用了ggplot2文档,Stack和ggplot2 Google群组电子邮件列表 - 但无济于事。在ggplot2中绘制较大点较亮点和较小点时合并图例

请有人能告诉我如何合并alpha(不透明度)和size的图例?它们分别标题为“(1-val2)”和“val2”。

正常情况下,将alpha和大小映射到val2会自动合并轴。但是因为我使用的是“val2”和“1-val2”,所以这不会发生。我玩过scale_size_continuousscale_alpha_continuous,但没有成功。

这里是一个MWE:

require(ggplot2) 

dummy <- data.frame(x=c(runif(12,5,10)), 
       y=c(runif(12,5,10)), 
       val1=c("a","b","c","a","b","c","a","b","c","a","b","c"), 
       val2=c(0.4,0.6,0.7,0.2,0.8,0.6,0.7,0.2,0.5,0.8,0.4,0.7)) 

p <- ggplot() + 
geom_point(data=dummy, aes(x=x, y=y,color=val1, size=val2, alpha=(1-val2))) 

回答

2

使用的scale_alpha_continuousrange参数反转规模:

ggplot() + 
    geom_point(data=dummy, aes(x=x, y=y,color=val1, size=val2, alpha=val2)) + 
    scale_alpha_continuous(range = c(1, 0.1)) 

resulting plot

+0

非常感谢! – user3580643 2014-10-05 19:23:58

2

trans说法也可能是有用的位置:

ggplot() + 
    geom_point(data=dummy, aes(x = x, y = y, color = val1, size = val2, alpha = val2)) + 
    scale_alpha_continuous(trans = "reverse") 

enter image description here

trans参数的描述在?scale_alpha_continuous?continuous_scale是相当薄。但是,您可以找到一些示例here

+0

+1。感谢Henrik提供的示例链接。 – user3580643 2014-10-05 20:10:04