2017-04-26 56 views
0

我需要在地圖上繪製地震強度。我可以做到這一點:我可以在scale_fill_distiller中導入調色板嗎?

data = as.data.frame(cbind('MMI'= c(5.705595,7.161231, 5.187135, 6.454477, 6.027840, 4.217181, 4.704672, 5.146932, 5.327897, 7.113057), 'LON'= c(-116.4, -116.5, -116.6, -116.7, -116.8, -116.9, -117.0,-117.1, -117.2, -117.3), 'LAT'= c(34.5, 34.5, 34.5, 34.5, 34.5, 34.5, 34.6, 34.6, 34.6, 34.6))) 

my_map = get_map(location = c(lon = mean(data$LON), lat = mean(data$LAT)), zoom = 9, maptype = "satellite", source = "google") 
ggmap(my_map) + geom_tile(data = data, aes(x=LON, y=LAT, fill = MMI), alpha = 0.5,color = NA) + scale_fill_distiller(palette = "Spectral", limits = c(0, 10), direction =-1) 

我的問題是強度有一個定義的顏色調色板從0到10(我列出它的「顏色」矢量),但我不管理使用這個調色板中scale_fill_distiller 。 我也嘗試使用scale_fill_manual,但它返回一個錯誤。

colours = c("#FFFFFF", "#9999FF", "#66FFFF", "#66FFCC", "#99FF33", "#FFFF33", "#FFCC33", "#FF9900", "#FF6600", "#FF0000", "#CC0000") 

ggmap(my_map) + geom_tile(data = data, aes(x=LON, y=LAT, fill = MMI), alpha = 0.5, color = NA) + scale_fill_manual(values = colours) 
> Error: Continuous value supplied to discrete scale 

什麼建議嗎?

+0

改變使用as.factor您的數據,以避免供應連續值離散規模 – timat

+0

你用你的'scale_fill_distriller'的'limits'說法有什麼特別的原因嗎? –

+0

顏色比例從0到10,但我的數據沒有,所以我需要將值與正確的顏色相關聯 –

回答

0

就個人而言,我會使用漸變色,可以定義顏色(和中斷)。以下示例使用默認中斷,但您可以使用values參數來控制它們。

scale_fill_gradientn(colours = colours) 

enter image description here

+0

謝謝你解決了我的問題!我確實使用了:scale_fill_gradientn(colors = colors,values = rescale(c(0,2,4,5,6,7,8,9,10,10.5)),limits = c(0,10))' –

相關問題