嗨,我有一个矩阵 37x73,它代表一个变量(moavg),网格以 10x10 度的间距(-180image(LON, LAT, moavg)但我无法显示颜色条。我想知道是否有另一个函数可以做到这一点(可能是 ggplot),它也允许我绘制颜色图例。非常感谢 最佳答案 对于绘制网格空间数据,raster 和 rasterVis 包也很有用。下面是几个例子:library(rasterVis) # this will also load the raster package# Create a raster from a matrix of dummy datam <- matrix(runif(36*18), ncol=36)r <- raster(m)# Set the extent of the objectextent(r) <- c(-180, 180, -90, 90)# plot with rasterplot(r)# plot with rasterVislevelplot(r, margin=FALSE)如果您的网格数据存在于一个文件中(例如 .asc、.tif 等),那么您可以通过给 raster() 一个文件路径来加载它,例如raster('C:/path/to/moavg.asc') ,在这种情况下您不需要设置范围,因为文件应该包含此元数据。有关更多详细信息,请参阅 ?raster 和 ?levelplot。 使用 raster 绘图 使用 levelplot 绘图 编辑 为了解决评论中发现的这个问题的扩展,这里有一种覆盖多边形的方法:library(maps)levelplot(r, xlab='longitude', ylab='latitude', margin=FALSE, panel = function(x, y, ...) { panel.levelplot(x, y, ...) mp <- map("world", plot = FALSE, fill=TRUE) lpolygon(mp$x, mp$y) })关于r - 图像与 ggplot : how to plot color legend?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21684942/
10-12 17:53