R语言 在ggplot(geom_sf)中,有没有一种方法可以在一条简单的要素线上添加箭头

ddrv8njm  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(93)

我在R中有一个sf层,在真实的生活中来自一个形状文件,在外部创建,但这里是一个超级简单的行。我所希望的是能够添加一个箭头到我的行,但geom_sf()似乎没有这个能力。还有别的路吗我想保留ggplot中的图,因为我只是在ggplot中设置的现有Map上添加了一个额外的层(实际的Map将有几个其他的多边形,点和线的SF层)。基本上所有我想要的是添加一个箭头一样,你可以在geom_path。有什么想法吗
我有什么:

library(sf)
library(ggplot2)

line = st_sfc(st_linestring(rbind(c(30,30), c(40,40))), crs = 28355)

ggplot(line)+geom_sf()+coord_sf(datum = 28355)

字符串
x1c 0d1x的数据
我想要什么,但仍然使用我的shapefile数据,以及适当的Map投影等。

dat <- data.frame(x = c(30,40), y = c(30,40))

ggplot(dat, aes(x, y)) + geom_path(arrow = arrow())

reprex package(v0.3.0)于2021-05-06创建

9rnv2umw

9rnv2umw1#

这现在是一个功能,请参阅reprex:

# --- load packages ----
library(ggplot2)
library(sf)
#> Linking to GEOS 3.9.3, GDAL 3.5.2, PROJ 8.2.1; sf_use_s2() is TRUE

# --- make toy dataframe ----
coords <- data.frame(lat = c(26.562855, 28.538336), 
                     lon = c(-81.949532, -81.379234)) |>
  st_as_sf(coords = c("lon", "lat"),  crs = 4326) |>
  st_coordinates() |>
  st_linestring()

# --- plot ----
ggplot() + 
  geom_sf(data = coords, size = 2, 
          arrow = arrow(angle = 45, 
                        ends = "last", 
                        type = "open", 
                        length = unit(0.5, "cm"))) + 
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

字符串
x1c 0d1x的数据
创建于2023-07-29,使用reprex v2.0.2

相关问题