2012-12-07 59 views
4

我密謀與瘧原蟲抗藥性的不同研究地點的地圖。研究地點的大小是相對於採集多少瘧原蟲的大小而定的,並且這些點的填充是從耐藥性瘧疾寄生蟲比例0到1的梯度。下面的代碼顯示如下圖:如何更改ggplot2中複雜填充的顏色?

###GENERATING AFRICA MAP### 
africa = readOGR("/Users/transfer/Documents/Mapping Files/Africa Countries/Africa_SHP", layer="dissolved") 
#FIXING THE NON-NODED INTERSECTS# 
africa = gBuffer(africa, width=0, byid=TRUE) 
#CREATING DATA FRAME FOR GGPLOT# 
africa.map = fortify(africa, region="ID") 

###PLOTTING SPM.437### 
#SCALING THE SAMPLE SIZE USING CUBE-ROOT# 
size = d.spm.437$Tot437^(1/3) 
#PLOTTING# 
ggplot(africa.map, aes(x = long, y = lat, group = group)) + 
    geom_polygon(colour="black", size=0.25, fill="white", aes(group=group)) + 
    geom_point(data = d.spm.437, aes(x = long, y = lat, fill=Frc437, group=NULL, size=Tot437), 
     size=size, shape=21, colour="black", size=0.5) 

enter image description here

我試圖用一種顏色的選擇,但它沒有工作:

ggplot(africa.map, aes(x = long, y = lat, group = group)) + 
    geom_polygon(colour="black", size=0.25, fill="white", aes(group=group)) + 
    geom_point(data = d.spm.437, aes(x = long, y = lat, colour="red", fill=Frc437, group=NULL, size=Tot437), 
     size=size, shape=21, colour="black", size=0.5) 

任何人都知道怎麼去填充的顏色顯示紅色的比例,比較亮的比例是0,比較深的比例是1?

回答

5

正如我在我的評論中提到的,我覺得你有點困惑設定VS測繪美學。

你在你的數據幀的aes()裏面映射美學的變量。因此,aes(color = var)將顏色唯美圖映射到變量var,並且您會看到一個圖例來顯示顏色隨var變化的方式。如果您設置顏色,外面的aes(),爲單個值,那麼你只是將所有點是一個單一的顏色:color = "red"

我懷疑你困惑的原因是,你有size=Tot437aes()裏面,然後size=sizesize=0.5aes()

最後,要更改調色板,您需要了解scale_color_*功能(以及scale_fill_*, scale_size_*等)。下面是一個簡單的例子,讓你開始:

dat <- data.frame(x = rnorm(50), 
        y = rnorm(50), 
        f = runif(50)) 

library(ggplot2) 
library(munsell) 
cl <- mnsl(c("5R 2/4", "5R 7/10")) 

ggplot(dat,aes(x,y,fill = f)) + 
    geom_point(size = 5,shape = 21) + 
    scale_fill_gradient(low = cl[1],high = cl[2]) 

我是怎麼想出這個瘋狂的顏色規格?從scale_fill_continuous的前幾行開始,然後在munsell軟件包中查找一下。

編輯:我完全忘記你是實際使用pch = 21這基本上是同時fill審美唯一有意義的點形狀爲,所以我已經修改,以去除對成績我的意見。

+2

除(更容易混淆)'是*需要fill' *當'PCH = 21'!例如看到http://stackoverflow.com/questions/10437442/place-a-border-around-points/10437545#10437545 –

+0

@Benbolker良好的漁獲,我錯過了在問題完全。我會再次編輯我的手機後不再使用我的手機。 – joran

相關問題