我非常抱歉,但是我觉得这个问题没有很好的示例数据集,因此我无法生成可重复的示例。如果这使得这个问题站不住脚,那么我一定会删除。
我尝试使用geom_raster()在ggplot2中绘制一个RasterLayer对象,但是得到了一个错误。我发现似乎必须将RasterLayer对象转换为 Dataframe ,但是做一个简单的转换似乎对这个特定的RasterLayer不起作用。
作为参考,使用plot()函数可以轻松地绘制这些数据,但由于ggplot的多功能性,如果可能的话,我希望在ggplot中完成。
下面是试图绘制数据的代码。注意,对象存储在一个列表中,还有许多其他我想要绘制的模型对象:
library(ggplot2)
ggplot() + geom_raster(data = mylist$model_object)
和错误:
`data` must be a <data.frame>, or an object coercible by `fortify()`, not an S4 object with class
<RasterLayer>.
Run `rlang::last_error()` to see where the error occurred.
下面是我运行mylist $model_object时发生的情况:
class : RasterLayer
dimensions : 114, 180, 20520 (nrow, ncol, ncell)
resolution : 0.1666667, 0.1666667 (x, y)
extent : -116, -86, 14, 33 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : memory
names : layer
values : 0, 0.5845846 (min, max)
下面是这个对象的结构:
一个三个三个一个
我完全理解,如果这是不够的去小康。如果任何人有一个关于容易访问光栅数据在线的建议,我可以作为一个代理repoducible例子使用,这将是非常感谢。谢谢!
2条答案
按热度按时间8wigbo561#
我们可以使用
as.data.frame
方法来计算raster
y53ybaqx2#
我会用“地”和“地”