【发布时间】:2022-08-14 09:55:23
【问题描述】:
我有一个栅格数据和公园的多边形,我想将它重叠在栅格上。当我添加多边形时,它会在此处显示,但在 ggplot 上,我如何通过 ggplot2 在我的栅格数据上添加多边形(公园的多边形就像圆形)。我的代码附在下面。
r <- raster(t((volcano[,ncol(volcano):1] - 94) * 4.95))
pg <- readOGR(\"E:/park/1aa.shp\") # loadshapfile
plot(r)
plot(pg, add= TRUE,) # it appears here like first picture (left).
但是如何在我的 ggplot 2 中添加这个多边形公园。我的 ggplot 2 代码附在下面。
centile90 <- quantile(r, 0.90)
df <- as.data.frame(as(r, \"SpatialPixelsDataFrame\"))
colnames(df) <- c(\"value\", \"x\", \"y\")
library(ggplot2)
mybreaks <- seq(0, 500, 50)
ggplot(df, aes(x, y, z = value)) +
geom_contour_filled(breaks = mybreaks) +
geom_contour(breaks = centile90, colour = \"pink\",
size = 0.5) +
scale_fill_manual(values = hcl.colors(length(mybreaks) - 3, \"Zissou1\", rev = FALSE)) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0)) +
theme_classic() +
theme()
如何在我的 ggplot2 代码中添加 ** pg(多边形)** 需要帮助。
更新 1多边形数据说明
-
这不是一个可重复的例子。请提供其他人可以运行的示例。我们无权访问这些数据。
-
我已经进行了更改并尝试使其可重现,请查看它。
-
因为
sp的开发人员基本上弃用了该软件包,并将所有新开发的重点放在较新的sf软件包上,所以现在使用sf而不是sp在ggplot2绘图上绘制多边形更容易。尝试使用sf::st_read()而不是readOGR读取您的shapefile,然后您可以将geom_sf()添加到您的绘图中。见r-spatial.github.io/sf/articles/sf5.html -
我明白,但我的问题是我如何写作geom_sf()在我的ggplot代码中?我需要在哪一行代码中添加此函数以在光栅图像上绘制我的 shapefile。很抱歉英语和编程意识差@qdread。
-
你能分享你的
1aa.shp文件吗?所以我们可以重现您的问题。
标签: r ggplot2 polygon raster shapefile