是否可以在Googleway中使用non viridisLite调色板?具体来说,我想要一个单一的色标。这是我的尝试:
library(googleway)
library(RColorBrewer)
googleway::google_map("") %>%
googleway::add_polygons(data = melbourne,
polyline = "polyline",
fill_colour = "SA4_NAME",
palette = brewer.pal(9, "Purples")
)
结果:
Error in checkPalettes.default(arg) :
I don't recognise the type of palette you've supplied
答案 0 :(得分:1)
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"
)