我可以在scale_fill_distiller中导入调色板吗?

时间:2017-04-26 11:10:28

标签: r ggplot2 ggmap

我需要在地图上绘制地震强度。我可以通过以下方式做到:

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的定义调色板(我在" colors" vector中列出了它),但是我没有设法在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

有任何建议吗?

1 个答案:

答案 0 :(得分:0)

就个人而言,我会使用渐变来定义颜色(和中断)。以下示例使用默认中断,但您可以使用values参数控制它们。

scale_fill_gradientn(colours = colours)

enter image description here