Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有些国家/地区在地图()中没有着色,在r中没有渐变填充_R_Map_Colorbrewer - Fatal编程技术网

有些国家/地区在地图()中没有着色,在r中没有渐变填充

有些国家/地区在地图()中没有着色,在r中没有渐变填充,r,map,colorbrewer,R,Map,Colorbrewer,我正在制作一张拉丁美洲(包括西班牙)地图,根据某些语音特征的平均值填充每个国家。数字是连续的,所以有一个渐变颜色填充(即数字越大越暗)将是完美的。不管怎样,下面是我正在做的代码: loc <- levels(data$country) cases <- levels(as.factor(data$mean)) frics <- data.frame(loc,cases) m <- map('worldHires',plot=F, xlim=c(-120,-35),ylim

我正在制作一张拉丁美洲(包括西班牙)地图,根据某些语音特征的平均值填充每个国家。数字是连续的,所以有一个渐变颜色填充(即数字越大越暗)将是完美的。不管怎样,下面是我正在做的代码:

loc <- levels(data$country)
cases <- levels(as.factor(data$mean))
frics <- data.frame(loc,cases)
m <- map('worldHires',plot=F, xlim=c(-120,-35),ylim=c(-60,30), fill=T)
stm <- match.map(m, frics$loc)

frics$rank <- rank(as.numeric(frics$cases), ties='min')
pal <- brewer.pal(max(frics$rank),'Reds')
color <- pal[frics$rank]
frics.color <- color[stm]

map(m,col=frics.color,fill=T, lty=0,boundary=F,interior=F) # fill regions
map('worldHires',interior=T,add=T,col='grey30')

所以,当我绘制地图时,发现一些国家没有被填满。最值得注意的是厄瓜多尔,还有其他中美洲国家。我怀疑这可能是因为我使用的调色板不支持14种不同的颜色。或者别的什么。

经过一些研究后,我发现RColorBrewer在任何调色板中都不支持超过12种顺序颜色。建议我改为使用R colorRampPalette()中的默认函数。为了解决我的问题,我替换了:

pal <- brewer.pal(max(frics$rank),'Reds')
color <- pal[frics$rank]

朋友,你自己给了一个可能的原因。我相信你是对的。那么,您是否检查了调色板的长度是否导致了错误?Red ColorBrewer调色板最多支持9种颜色。运行语句时是否会收到警告:
pal谢谢您的评论。ColorBrewer一次支持的颜色不能超过12种,所以我不得不询问如何找到一种新的颜色系统。我在下面发布了解决方案。
pal <- brewer.pal(max(frics$rank),'Reds')
color <- pal[frics$rank]
wbPal <- colorRampPalette(c('white','black')) #spectrum ranges from white to black
color <- wbPal(14) #number of distinct colors