2012-04-26 61 views
7

這個等式從我的previous question引出。我想繪製代表總人口的點,到目前爲止,我使用scale_size來使點的大小相對於其總人口。在R中,如何在使用ggplot2中的scale_size時使點透明?

但是,我想讓這些點透明,因爲點覆蓋了地圖。但是,只要我想發送的信息清晰,我就可以接受其他選擇。 enter image description here

# load required packages 
library(ggmap) 
library(ggplot2) 

# query map of Birmingham, AL 
al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, 
     source = "osm", maptype = 'terrain') 

al1MAP <- ggmap(al1)+ geom_point(data=quote_bmh, 
      aes(x=IntPtLon, y=IntPtLat, size=TotPop, colour="gold2"), 
      colour="gold2") + scale_size(range=c(0,15)) 
+3

另一種可能是使用插值例如人口點反距離加權內插('gstat'中的'idw'),克里金法(例如'automap')或某種內核法(即2d密度)。 – 2012-04-26 14:56:08

回答

10

使用統一的透明度,只需添加alpha = 0.3geom_pointalpha可以介於0和1之間,具體取決於您想要的透明度。如果要使透明度取決於變量,只需將alpha = var_name添加到mapping參數(aes位),其中var_name是要用於透明度的變量的列名稱。

+1

當保羅很快,看到它,並去郵政和巴姆他的回答。 +1 – 2012-04-26 14:53:32

+0

哈哈,我首先輸入了答案的第一部分,而不是編輯添加更多細節。這類問題回答得太快,所以我需要快速:)。 – 2012-04-26 14:54:25

+0

哇,你回答的太快了,我得等上十分鐘才能接受你的回答。非常感謝! – Ken 2012-04-26 14:57:41

5

另一種選擇是使用空心點,例如, geom_point(shape = 21)。這將使得地圖直接在點之下,同時使得點的邊緣清晰可見。

(不幸的是,我的僱主阻止谷歌API的結果,所以我不能發表)

相關問題