2014-09-18 63 views
2

我很努力在包的幾個多邊形上引入自定義調色板。 我正在繪製幾個字段,並希望顯示我的評分,它可以有值0,1,2,4或5.我需要使用自定義顏色。我試過的是:R:自定義調色板在地圖上用spplot

spplot(Map,zcol="Rating", 
     col.regions=c("0"="#00cc00","1"="#ffff66","2"="#e5c100", 
        "3"="orange","4"="#ff5e5e","5"="red"), 
     colorkey=TRUE) 

但是,它正在產生重複的顏色,如下圖所示。我該如何解決這個問題?我知道我怎樣才能用ggplot,但出於幾個原因,我需要知道如何用spplot來做到這一點。 非常感謝您的幫助。

編輯:這裏有地圖爲例,它工作,我需要的方式:

con <- url("http://gadm.org/data/rda/DEU_adm3.RData") 
print(load(con)) 
close(con) 
t1<-gadm[grep("Sachsen|Hessen|Bayern",gadm$NAME_1),] 
col=c("red","yellow") 
spplot(t1,zcol="TYPE_3",col.regions=col) 

我注意到以下幾點:當我子集原來的「大SpatialPolygonsDataframe」我的數據,所產生的地圖是「正式類SpatialPolygonsDataframe」。這在我剛剛發佈的例子中沒有發生。任何人都可以告訴我是什麼導致了這種行爲?不幸的是,我無法上傳原始(敏感)數據。

Map produced by spplot with repetitive color code (not desired)

+0

如果您將代碼更改爲'col.regions = c(「#00cc00」,「#ffff66」,「#e5c100」,「orange」,「#ff5e5e」,「red」 )' – eipi10 2014-09-18 18:11:38

+0

不,它不。 – user2386786 2014-09-18 20:42:51

+0

如果你發佈一個[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)以便其他人可以複製,它會更容易幫助你你的問題,並試圖解決它。 – eipi10 2014-09-18 20:46:05

回答

0

這發生在你的zcolnumeric。將其轉換爲factor並且您的圖應該按預期顯示。

您可以看到此行爲如果轉換t1$TYPE_3到數字:

t1$TYPE_3.num <- as.numeric(t1$TYPE_3) 
spplot(t1, 'TYPE_3.num', col.regions=c('red', 'yellow')) 

t1

所以假設有6級可能的因子水平,帶標籤的0到5,嘗試:

Map$Rating.fac <- factor(M$Rating, levels=0:5) 

,然後使用zcol='Rating.fac'並將6種顏色的矢量傳遞給col.regions