gpt4 book ai didi

r - 在geom_sf_text中,如何在美学上微调x和y?

转载 作者:行者123 更新时间:2023-12-04 16:59:39 27 4
gpt4 key购买 nike

我想使用sf微调ggplot2中文本的x和y位置。可以在美学中修改文本的正当性,然后需要对裸露进行类似的修改,但是nudge_x和nudge_y不能用于美学中。

使用sp和强化的数据帧,我可以在美学上修改x和y(x =(x + hBump),y =(y + vBump)。我不知道这在SF中是否可行。

以下是一些数据:

Cities <- read.table( text=
"City long lat hJust vJust hBump vBump
GrandJunction -108.550649 39.063871 1 1 -1100 -1000
Gunnison -106.925321 38.545825 0 1 0 -1000
Tincup -106.47836 38.754439 1 0 0 800",
header=TRUE )

转换为sf

Cities.sf <- st_as_sf(
x = Cities,
coords = c("long", "lat"),
crs = "+proj=longlat +datum=WGS84"
)

ggplot(coord_sf只是为了让标签不脱落)

ggplot(Cities.sf) + 
geom_sf() +
coord_sf(xlim = c(-109, -106.3), ylim = c(38.4, 39.2)) +
geom_sf_text(aes(label = City, hjust = hJust, vjust = vJust))

enter image description here

现在,如果我们轻推一个,其他人可能会陷入困境。
需要美感!
ggplot(Cities.sf) + 
geom_sf() +
coord_sf(xlim = c(-109, -106.3), ylim = c(38.4, 39.2)) +
geom_sf_text(
aes(label = City, hjust = hJust, vjust = vJust),
nudge_x = 0.025, nudge_y = -0.025
)

enter image description here
附带问题-我猜是否将对象转换为另一个crs
使用米,那么微移单位必须从度数更改为米?这就是hBump和vBump所在的单位。

最佳答案

据我所知,nudge_xnudge_y的矢量化输入已正确处理。

library(ggplot2)
library(sf)
#> Linking to GEOS 3.7.2, GDAL 2.4.2, PROJ 5.2.0

Cities <- read.table(text=
"City long lat hJust vJust hBump vBump
GrandJunction -108.550649 39.063871 1 1 -1100 -1000
Gunnison -106.925321 38.545825 0 1 0 -1000
Tincup -106.47836 38.754439 1 0 0 800",
header=TRUE)

Cities.sf <- st_as_sf(x = Cities,
coords = c("long", "lat"),
crs = "+proj=longlat +datum=WGS84")

ggplot(Cities.sf) + geom_sf() +
coord_sf(xlim = c(-109, -106.3), ylim = c(38.4, 39.2)) +
geom_sf_text(
aes(label = City, hjust = hJust, vjust = vJust),
nudge_x = c(-0.025, 0.025, -0.05),
nudge_y = c(-0.025, -0.025, 0)
)
#> Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may
#> not give correct results for longitude/latitude data

reprex package(v0.3.0)创建于2020-01-01

关于r - 在geom_sf_text中,如何在美学上微调x和y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59522531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com