2014-10-05 64 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