0

我有这段代码:

ggplot(legend = FALSE) + 
geom_polygon(data = map.df, size = 0.1, aes(long, lat, group = group, colour = "grey80", fill = ind_vul)) + 
scale_fill_gradient2(low = "blue", high = "red", midpoint = mean(map.df$ind_vul, na.rm = TRUE)) + 
geom_point(data = puntos.df, aes(as.numeric(long), as.numeric(lat), colour = geografico), size = 2) +
facet_wrap(~municipio, scales = "free") + 
tema.mapas   

我发现了几个问题(显然与我对这个主题的无知有关),问题如下(所有相关,请参阅ggplot throwing an error in奇怪的情况):

  • 大小参数 ingeom_polygon工作异常,aes如果没有colour参数,则外部无效,内部将被忽略。

  • colour参数geom_polygon在上面的代码中被忽略(再次在 中),colour="grey80"但多边形的轮廓线是另一种颜色,并且“grey80”显示为点的图例!

4

1 回答 1

0

因为colour='grey80'并且size=0.1没有要求您的专栏,map.df所以他们应该不在aes通话范围内。换句话说,当colour是 inside时aes,ggplot 认为您是在告诉它将绘图的颜色基于数据中的某个列,或者如果给定一个像您在这里一样的文字字符串,则在该字符串和某个条目之间创建映射在通常的调色板中。在某些情况下,将美学映射到文字字符串可能是一种有用的技术,但与将美学设置为值不同。在 之外aes,color 将查找已命名的颜色"grey80"并将使用该特定颜色。

[改编自评论并略有扩展]

于 2013-07-15T17:54:07.843 回答