gpt4 book ai didi

r - 将条形图绘制到 R ggplot2 中的 map

转载 作者:行者123 更新时间:2023-12-04 14:04:09 24 4
gpt4 key购买 nike

我想在 ggplot2 中向 map 添加条形图。存在类似的问题(this onethis one),但他们的答案涉及 ggsubplot,已弃用。geom_scatterpie() 提供了一种使用饼图执行此操作的方法(example 1,但也请参阅 example 2),但饼图在视觉上不如条形图直观。同样,我们可以使用 geom_sf(size=) 将气泡大小绘制到 map 上,如 here 所述。 .那么有没有办法用酒吧来做到这一点?

每个位置制作一个条形图的可重现示例:

# devtools::install_github("hrbrmstr/albersusa")
library(albersusa)
library(sf)
library(ggplot2)

# make a map
statesus <- fortify(usa_sf("laea"))
p <- ggplot() +
geom_sf(data=statesus, size=0.4)

# set up the data
lat <- c(-68.24, -109.88, -80.88, -113.85)
lon <- c(44.35, 38.24, 25.37, 48.75)
park <- c("Acadia", "Canyonlands", "Everglades", "Glacier")
proportion <- c(0.10, 0.80, 0.05, 0.45) # bar heights
parkdat <- data.frame(lat=lat, lon=lon, park=park, proportion=proportion)
parkdatsf <- st_as_sf(parkdat,
coords=c(lon="lon", lat="lat"),
crs=4326,
agr="constant")

# add points to the map (ideally these would be bars)
p + geom_sf(data=parksdatsf)

最佳答案

添加条形作为点对我来说有点尴尬。如果您想在 map 中添加条形图,一种选择是像这样使用 geom_rect:

library(sf)
library(ggplot2)
library(albersusa)

p <- ggplot() +
geom_sf(data=usa_sf(), size=0.4) +
theme_minimal()

scale <- 10
width <- 4

p +
geom_rect(data=parkdat, aes(xmin = lat - width / 2, xmax = lat + width / 2, ymin = lon, ymax = lon + proportion * scale, fill = park))

关于r - 将条形图绘制到 R ggplot2 中的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69082257/

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