【发布时间】:2016-10-06 03:30:19
【问题描述】:
questions 说 ggplot2 无法绘制具有孔的多边形形状。
这是因为,如果点的顺序不正确,则最终图看起来很糟糕,通常在甜甜圈形状内带有剪裁/修剪线。
我已经阅读了很多关于订单的重要性的信息,但我无法向前迈进。
我有一个 SpatialPolygonsDataFrame 有 26 个功能(来自 raster::rasterToPolygons(dissolve=T)),我想用 ggplot 绘制它。
这就是发生的事情-
r3.pol <- rasterToPolygons(r3, dissolve=T)
r3.df <- fortify(r3.pol)
names(r3.df) <- c('x','y','order','hole','piece','ID','group')
p <- ggplot(r3.df)
p <- p + geom_polygon(mapping=aes(x=x,y=y,group=ID), fill='red')
p <- p + coord_equal()
我看到了这个输出:
虽然应该是这样,但plot(r3.pol):
我怎样才能做到这一点?
我尝试了几个小时,但无法重新排序 r3.df。
另外,r3.df$hole 中的信息对您有帮助吗?它是由函数fortify 返回的孔点(我认为)。
附带问题:我怎样才能给你我的 r3.pol SpatialPolygonsDataFrame,让你自己试试?我记得在这里看到过长的、可重现的对象“转储”,但我不知道该怎么做。
我saved 多边形数据框here。无法使用dput 保存它,抱歉。您可以使用load 获取它。
【问题讨论】:
-
您不需要提供整个数据框。只是一个带有几个单独多边形的较小样本。将
dput(dataSample)的输出粘贴到您的问题中。 -
@eipi10 就是这样!但是我在使用它时遇到了麻烦。它似乎不适用于 SpatialPolygonsDataFrame。如果我在 r3.df 上使用它,即使使用二次采样,它仍然是一个巨大的转储。我想我会在那里使用一些日志提供程序。
-
我会说为地图放弃 ggplot2 并使用 package:tmap - 处理漏洞,不再需要
fortify一切。