2013-12-09 97 views
4

我將大小映射到一個類似於日誌分佈的變量 - 大多數值很小,但有一些非常大的值。如何讓圖例顯示自定義值在低值範圍內?例如:自定義ggplot2中的圖例大小符號項目

df = data.frame(x=rnorm(2000), y=rnorm(2000), v=abs(rnorm(2000)^5)) 
p = ggplot(df, aes(x, y)) + 
    geom_point(aes(col=v, size=v), alpha=0.75) + 
    scale_size_area(max_size = 10) 
print(p) 

我已經試過p + guides(shape=guide_legend(override.aes=list(size=8)))解決方案張貼在this SO question,但它使我的陰謀沒有區別。無論如何,我想使用特定的圖例大小值,例如v = c(10,25,50,100,250,500)而不是默認範圍,例如c(100,200,300,400)..

感謝您的協助。

enter image description here

回答

4

爲了得到大小不同的破發點,在傳說中,通過添加參數breaks=修改scale_size_area()。通過breaks=,您可以在需要的位置設置斷點。

ggplot(df, aes(x, y)) + 
    geom_point(aes(col=v, size=v), alpha=0.75) + 
    scale_size_area(max_size = 10,breaks=c(10,25,50,100,250,500)) 
+0

感謝Didzis快速回應:) – geotheory