" scale_fill_manual"中的错误

时间:2015-07-24 10:36:42

标签: r ggplot2

我设法将这些分别绘制到数据集中,但是当我尝试将它们组合在一个图中时,我收到错误消息: “错误:手动秤中的值不足。需要34个,但只提供了8个。“ 问题出在scale_fill_manual() 有人可以帮我解决这个问题。 我希望生成的数据有效..我仍然得到相同的错误

生成数据

i_country<-wrld_simpl@data$NAME[1:26]

e_country<-wrld_simpl@data$NAME[27:34]

i <- data.frame(
     country = i_country,
     import = c(sample(10:10000, 26)))

e <- data.frame(
     country =e_country,
     export = c(sample(10:10000, 8)))

准备wrld_simpl数据

data(wrld_simpl)
wrld_simpl@data$id <- wrld_simpl@data$NAME
wrld <- fortify(wrld_simpl, region="id")
wrld <- subset(wrld, id != "Antarctica")

i$brk <- cut(i$import, 
         breaks=c(0, sort(i$import)), 
         labels=as.character(i[order(i$import),]$country),
         include.lowest=TRUE)

e$brk <- cut(e$export, 
         breaks=c(0, sort(e$export)), 
         labels=as.character(e[order(e$export),]$country),
         include.lowest=TRUE)

剧情

 library(ggplot2)

gg <- ggplot() + 
   geom_map(data=wrld, map=wrld, aes(map_id=id, x=long, y=lat), fill="white", color="#7f7f7f", size=0.25) +
   geom_map(data=i, map=wrld, aes(map_id=country, fill=brk),  color="white", size=0.25) + 
   geom_map(data=e, map=wrld, aes(map_id=country, fill=brk),  color="white", size=0.25) +
   scale_fill_manual(data=i, values=colorRampPalette(brewer.pal(9, 'Reds'))(length(i$import)), name="Export country") +
   scale_fill_manual(data=e, values=colorRampPalette(brewer.pal(9, "Greens"))(length(e$export)), name="Import country") +
   coord_map() + 
   theme(plot.background = element_rect(fill = "transparent", colour = NA),
         panel.border = element_blank(),
         panel.background = element_rect(fill = "transparent", colour = NA),
         panel.grid = element_blank(),
         axis.text = element_blank(),
         axis.ticks = element_blank(),
         legend.position =c( "left", "right")) 

gg

错误

  

手动刻度值不足。需要34个,但只提供了8个。

1 个答案:

答案 0 :(得分:0)

我现在没有R和我在一起,但是试着换掉        length(i$import)  使用brewer.pal命令中的9。 通常,此错误表示您的scale_fill_manual命令中没有足够的颜色或形状。