小编jua*_*uan的帖子

将ggplot2 geoms添加到简单的特征图中

sf与使用空间数据相比,该软件包似乎是一种更加用户友好的方法sp.例如,如果我有一组纬度/经度坐标,我可以使用开发版本轻松绘制ggplot2:

library(sf)
devtools::install_github("tidyverse/ggplot2")
library(ggplot2)

# generate some data
set.seed(123)

y = rnorm(10, mean=40, sd=20)
x = rnorm(10, mean=-100, sd=30)

# collect to data.frame
xy = data.frame(x=x,y=y)

# create sf object
xy.sf = sf::st_as_sf(xy, coords=c("x", "y"), crs=4269)

# plot points
ggplot(data=xy.sf) + geom_sf()
Run Code Online (Sandbox Code Playgroud)

ggplot2::geom_sf函数知道xy.sf对象的几何是一组点,因此我不需要调用,例如ggplot2::geom_point().

但是,假设我想根据点集添加另一个geom.

例如,如果我想生成一个轮廓图层以显示点集中的位置,我会使用ggplot2::geom_density2d或者ggplot2::stat_density2d,如本答案本答案所示.

但是,以下代码

ggplot(data=xy.sf) +
    geom_sf() +
    geom_density2d(data=xy.sf, aes(x=x,y=y,colour=..level..))
Run Code Online (Sandbox Code Playgroud)

产生以下图像

测试countour地图

请注意,countour线似乎有相反的坐标!

我试着摆弄上面的代码,但无法让它工作.我意识到sf包装是相当新的,但地图非常接近正确!有任何想法吗?

编辑:忘记添加会话信息

> sessionInfo() …
Run Code Online (Sandbox Code Playgroud)

r spatial ggplot2 r-sf

6
推荐指数
1
解决办法
699
查看次数

标签 统计

ggplot2 ×1

r ×1

r-sf ×1

spatial ×1