该palette
参数需要一个函数,该函数在给定单个参数作为输入的情况下生成调色板(而不是调色板本身)
brewer.pal()
您可以使用单个输入将该函数包装在您自己的函数中。
但是,您将面临的麻烦是将 brewer.pal 中的 9 种颜色映射到 12 个SA4_NAME
变量。9进12不去。
如果您有一个具有 9 个不同值的变量,这就是它的工作方式。
library(googleway)
library(RColorBrewer)
set_key(read.dcf("~/Documents/.googleAPI", fields = "GOOGLE_MAP_KEY"))
myBrewerPal <- function(x) { brewer.pal(n = x, name = "Purples") }
melbourne$myVal <- sample(1:9, size = nrow(melbourne), replace = T)
googleway::google_map("") %>%
googleway::add_polygons(
data = melbourne
, polyline = "polyline"
, fill_colour = "myVal"
, palette = myBrewerPal
)
另一种解决方案是手动将一列十六进制颜色添加到melbourne
,并将该列指定为fill_colour
。然后由您来确保颜色正确映射到您想要的变量。
melbourne$myColours <- sample(brewer.pal(n = 9, name = "Purples"), size = nrow(melbourne), replace = T)
googleway::google_map("") %>%
googleway::add_polygons(
data = melbourne
, polyline = "polyline"
, fill_colour = "myColours"
)