这是我的第一个问题,尽我最大的努力使我的问题简单和可重复。
我遇到了来自geom_contour_fill库的R命令metR的问题。下面的代码显示,在某些情况下,当geom_contour_fill能够很好地处理相同的输入数据时,geom_contour无法绘制。geom_contour_fill只是在“情节”窗格中返回一个灰色框。
但是,通过将代码中的get_elev_raster命令中的缩放级别更改为z=9,geom_contour_fill再次正常工作。
我想要能够使用更高的缩放水平,我遇到了这个问题与其他地图范围随机,所以谁能看到如何解决这个问题?
谢谢!
##loading necessary libraries
library(elevatr)
library(metR)
library(ggplot2)
library(raster)
##map limits
dims <- data.frame(long = c(-97.73235, -97.78369), lat = c(30.30242, 30.25396))
##grid point from map limits
grid <- data.frame(x = seq(from = dims$long[2], to = dims$long[1], length.out = 1000),
y = seq(from = dims$lat[2], to = dims$lat[1], length.out = 1000))
##coordinate system
nad27 <- "+proj=longlat +datum=NAD27 +no_defs +ellps=clrk66 +nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat"
##pull elevation data
elev <- get_elev_raster(grid, prj = nad27, z = 10, clip = "bbox")
##convert to data frame
elevDF <- as.data.frame(elev, xy = TRUE)
##remove NAs
elevDF <- elevDF[!is.na(elevDF$layer),]
##geom_contour runs fine
ggplot() +
geom_contour(data = elevDF, aes(x = x, y = y, z = layer), size = .5, binwidth = 5)
##geom_contour fill fails - plots blank gray area
ggplot() +
geom_contour_fill(data = elevDF, aes(x = x, y = y, z = layer), size = .5, binwidth = 5) 发布于 2020-05-11 20:48:16
通过实验和猜测,我发现使用seq参数可以得到一些结果:
png(); print( ggplot() +
geom_contour_fill(data = elevDF,
aes(x = x, y = y, z = layer), breaks =seq(150,175,by=5), size = .5, binwidth = 5) );dev.off()我没有从help页面得到多少帮助,而是尝试搜索"geom_contour_filled metr",在https://cran.r-project.org/web/packages/metR/vignettes/Visualization-tools.html中找到vignette页面,然后先尝试fill,然后尝试breaks参数,看看我能得到什么。只有在z数据的范围内指定单个值才会成功,并在该范围外指定一个值会引发一个信息不足的错误(无论如何,对我来说)。

https://stackoverflow.com/questions/61737062
复制相似问题