gpt4 book ai didi

r - 放置在 ggmap 坐标上的小 ggplot2 图

转载 作者:行者123 更新时间:2023-12-03 03:15:48 24 4
gpt4 key购买 nike

我想首先使用ggmap以经度和纬度为轴绘制特定区域。

然后我想在特定位置上放置小 ggplot2 图,并给出它们的经度和纬度。这些可以是具有最小主题的条形图。

我的数据库可能包含以下列:

1. town
2. longitude
3. latitude
4. through 6. value A, B, C

我生成一个图(伪代码)

p <- ggmap(coordinates) 

我有我的最小 ggplot2 设计

q<-ggplot2()+geom_bar(....)+ ... x-axis null y axis null minimal template

如何将这两种设计结合起来,形成一个 ggmap,并在 map 的特定坐标上绘制最小的 ggplot 图?

最佳答案

这是我使用饼图作为散点图上的点所做的一个。您可以使用相同的概念将条形图放在 map 上的特定纬度/经度坐标处。

R::ggplot2::geom_points: how to swap points with pie charts?

需要进一步更新。使用的一些代码是另一个答案的缩写,该答案已被删除。如果您通过搜索引擎找到这个答案,请发表评论,我会抽出时间来充实它。

<小时/>

更新:

enter image description here

主要使用您的答案中改编的代码,但我必须更新几行。

p <- ggmap(Poland) + coord_quickmap(xlim = c(13, 25), ylim = c(48.8, 55.5), expand = F)

此更改可以实现更好的投影并消除有关重复比例的警告。

df.grobs <- df %>% 
do(subplots = ggplot(., aes(1, value, fill = component)) +
geom_col(position = position_dodge(width = 1),
alpha = 0.75, colour = "white") +
geom_text(aes(label = round(value, 1), group = component),
position = position_dodge(width = 1),
size = 3) +
theme_void()+ guides(fill = F)) %>%
mutate(subgrobs = list(annotation_custom(ggplotGrob(subplots),
x = lon-0.5, y = lat-0.5,
xmax = lon+0.5, ymax = lat+0.5)))

在这里,我明确指定了 geom_col 的闪避宽度,以便我可以将其与 geom_text 进行匹配。我使用 round(value, 1) 作为标签美学,它自动从 subplots = 继承 xy 美学ggplot(...) 调用。我还手动将尺寸设置得非常小,以便标签适合,但随后我增加了每个子区域的整体边界框,每个方向从 0.35 增加到 0.5。

df.grobs %>%
{p +
.$subgrobs +
geom_text(data=df, aes(label = name), vjust = 3.5, nudge_x = 0.065, size=2) +
geom_col(data = df,
aes(Inf, Inf, fill = component),
colour = "white")}

我在这里所做的唯一更改是为了“幽灵”geom_col 的美观。当它们设置为 0,0 时,根本不会绘制它们,因为它不在 x 和 y 限制内。通过使用 Inf,Inf,它们被绘制在最右上角,这足以使它们不可见,但仍然为图例绘制。

关于r - 放置在 ggmap 坐标上的小 ggplot2 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45411140/

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