首页 > 解决方案 > 接收错误“美学必须是长度1或与数据相同(9420):颜色”在R

问题描述

editeddf$MajorAF <- 1 - editeddf$MAF

pdf(paste(var, "alleleFrequencyplot.pdf", sep = ""))

world <- map_data("world")
p <- ggplot(world, aes(long, lat)) +
  geom_map(map = world, aes(map_id = region), 
           fill = NA, color = "black") +
  coord_quickmap()

print(p + 
        geom_scatterpie(aes(x = long, y = lat, group = 1, r = 5),
                        data = editeddf, 
                        cols = c("MAF", "MajorAF"), 
                        color = c("lightskyblue1", "palevioletred2"), 
                        alpha = .8))
dev.off()

在 R 中运行上述代码时,出现以下错误:

Error: Aesthetics must be either length 1 or the same as the data (9420): colour

不知道问题是什么,但是当我从打印语句中删除“geom_scatterpie”时,它会打印出一张灰色的世界地图,这并不是我想要的。

标签: r

解决方案


这可能会解决您的颜色问题。scale_fill_manual分别在而不是在 中指定 MAF 和 MajorAF 的颜色geom_scatterplot。然后你的馅饼会变成蓝色和紫色。

world <- map_data('world')
p <- ggplot(world, aes(long, lat)) + 
  geom_map(map=world, aes(map_id=region), fill=NA, color="black") + 
  coord_quickmap()
print(p + geom_scatterpie(aes(x=long, y=lat, group=1, r=5), data=editeddf, cols=c("MAF","MajorAF"), alpha=.8)+
        scale_fill_manual(values=c("lightskyblue1","palevioletred2")))
      

推荐阅读