R 有没有办法在地图上绘制多个条形图?

R 有没有办法在地图上绘制多个条形图?,r,ggplot2,mapping,ggmap,R,Ggplot2,Mapping,Ggmap,我试图在地图上绘制多个条形图,只是想找一个地方开始。我已经看了几个问题(如下所示) 然而,所有这些似乎都过时了 下面是我试图绘制的数据。我希望在一张地图上绘制4个图,每个地理位置绘制一个图。我希望每个绘图都是每个位置上每个目的的计数 geoloc purpose count 1 Eastern Atlantic Behavior 4 2 Eastern

我试图在地图上绘制多个条形图,只是想找一个地方开始。我已经看了几个问题(如下所示)

然而,所有这些似乎都过时了

下面是我试图绘制的数据。我希望在一张地图上绘制4个图,每个地理位置绘制一个图。我希望每个绘图都是每个位置上每个目的的计数

                 geoloc                     purpose count
1      Eastern Atlantic                    Behavior     4
2      Eastern Atlantic           Impacts/Fisheries     7
3      Eastern Atlantic                   Knowledge     8
4      Eastern Atlantic Migration/Habitat Selection     2
5      Eastern Atlantic                    Movement    10
7       Eastern Pacific                    Behavior     1
8       Eastern Pacific           Impacts/Fisheries     1
9       Eastern Pacific                   Knowledge     3
10      Eastern Pacific Migration/Habitat Selection     2
11      Eastern Pacific                    Movement     4
13 Southwestern Pacific                    Behavior     3
14 Southwestern Pacific                    Movement     7
15     Western Atlantic                    Behavior     8
16     Western Atlantic           Impacts/Fisheries     2
17     Western Atlantic                   Knowledge     8
18     Western Atlantic Migration/Habitat Selection     3
19     Western Atlantic                    Movement     9
这就是我获得我试图使用的地图的方式

mp <-  NULL
mapWorld <- borders("world", colour="gray70", fill="gray70") 
mp <- ggplot() +   mapWorld

mp我个人会使用magick软件包将图形视为图像,并将图像与所需偏移量合并,以创建与您的目标相似的内容。我创建了一个非常快速的示例,向您展示了如何在世界地图上放置两个条形图

显然,您可以执行进一步的操作来添加图例、图表标题等

library(ggmap)
library(maps)
library(ggplot2)
library(magick)
mp <-  NULL
mapWorld <- borders("world", colour="gray70", fill="gray70") 

fig <- image_graph(width = 850, height = 550, res = 96)
ggplot() + mapWorld
dev.off()

df1 <- data.frame(name = c('A','B','C'), value = c(10,12,13))
df2 <- data.frame(name = c('A','B','C'), value = c(8,12,18))

bp1 <- ggplot(df1, aes(x = name, y = value, fill = name)) +
  geom_bar(stat = 'identity') +
  theme_bw() + 
  theme(legend.position = "none", axis.title.x = element_blank(), axis.title.y = element_blank())

bp2 <- ggplot(df2, aes(x = name, y = value, fill = name)) +
  geom_bar(stat = 'identity') +
  theme_bw() +
  theme(legend.position = "none", axis.title.x = element_blank(), axis.title.y = element_blank())

barfig1 <- image_graph(width = 100, height = 75, res = 72)
bp1
dev.off()

barfig2 <- image_graph(width = 100, height = 75, res = 72)
bp2
dev.off()

final <- image_composite(fig, barfig1, offset = "+75+150")
final <- image_composite(final, barfig2, offset = "+325+125")
final
库(ggmap)
图书馆(地图)
图书馆(GG2)
图书馆(magick)

有没有办法使绘图背景透明?我一直在尝试这篇文章中的例子,但这些例子对我来说并不奏效。我想出来了。。您必须将所有主题设置为空白,并将“bg=‘transparent’参数添加到image_graph函数中。很高兴这样做有效!另一种方法是转换“barfig”“创建图像后,使用barfig1将其透明,是否可以利用绘图下方的空白区域,或使用此工具进行双面板绘图?”?我想在地图下面添加另一个图。你可以很容易地堆叠多个magick图像(如果你想了解更多信息,这里有更多信息)。首先,制作一个图像向量——你可以用同一个图像测试它两次,这样就可以叠加了