gpt4 book ai didi

R - 使用 shapefiles/SpatialPolygonsDataFrame 的数据来着色/填充 ggplots

转载 作者:行者123 更新时间:2023-12-03 09:26:52 25 4
gpt4 key购买 nike

我有一个具体问题:如何根据 SpatialPolygonsDataFrame 对象的数据选择 ggplot 的填充或颜色?例如,考虑以下 SpatialPolygonsDataFrame sf:

sf <- readShapePoly("somePolygonShapeFile")

它允许我访问示例数据字段 FK,如下所示:

sf$FK            // or
sf@data$FK

现在,我想准备一个简单的 ggplot:

p <- ggplot(sf, aes(x=long, y=lat, group=group, FK=???))

但是,我不知道在 aes() 中将什么传递给 FK。网格数据框(grid.extent(...))的经验让我想到,我可以直接输入FK=FK。这似乎不适用于 SpatialPolygonsDataFrame 对象。不允许尝试 FK=sf$FK 或 FK=sf@data$FK ,因为:

Error: Aesthetics must either be length one, or the same length as the data

我想,解决方案很简单,但我现在根本不明白。

最佳答案

感谢 @juba、@rsc 和 @SlowLearner,我发现 gpclib 的安装仍然缺失,无法提供 gpclibPermit。完成此操作后,使用指定区域强化sf就不再是问题了。使用ggplot2/wiki中的解释我能够将原始形状文件的所有数据字段传输到绘图友好的数据框中。后者最终按照预期在 R 中绘制 shapefile 的方式工作。以下是最终代码,其中省略了实际的工作目录变量内容:

require("rgdal") # requires sp, will use proj.4 if installed
require("maptools")
require("ggplot2")
require("plyr")

workingDir <- ""

sf <- readOGR(dsn=workingDir, layer="BK50_Ausschnitt005")
sf@data$id <- rownames(sf@data)
sf.points <- fortify(sf, region="id")
sf.df <- join(sf.points, sf@data, by="id")

ggplot(sf.df,aes(x=long, y=lat, fill=NFK)) + coord_equal() + geom_polygon(colour="black", size=0.1, aes(group=group))

关于R - 使用 shapefiles/SpatialPolygonsDataFrame 的数据来着色/填充 ggplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com