Preciso de sua ajuda e forneci os códigos de exemplo abaixo. Meu problema envolve colocar 'map2' em um quadrado no canto superior esquerdo de 'map1' e adicionar uma seta de 'map2' para um local específico em 'map1'. Pesquisei no site, mas os tópicos mais discutidos estão relacionados à fusão de duas camadas de dados.
Se você puder me ajudar, eu agradeceria muito.
library (tidyverse)
library (rnaturalearth)
world <- rnaturalearth::ne_countries(scale = "medium", returnclass = "sf")
map1<- ggplot(data = world) +
geom_sf() +
#annotation_scale(location = "bl", width_hint = 0.2) +
#annotation_north_arrow(location = "tr", which_north = "true",
# pad_x = unit(0.83, "in"), pad_y = unit(0.02, "in"),
# style = north_arrow_fancy_orienteering) +
coord_sf(xlim = c(35, 48), ylim=c(12, 22))+
xlab("Longtitude")+
ylab("Latitude")
map2<- ggplot(data = world) +
geom_sf() +
#annotation_scale(location = "bl", width_hint = 0.2) +
#annotation_north_arrow(location = "tr", which_north = "true",
# pad_x = unit(0.83, "in"), pad_y = unit(0.02, "in"),
# style = north_arrow_fancy_orienteering) +
coord_sf(xlim = c(5, 45), ylim=c(5, 45))+
xlab("Longtitude")+
ylab("Latitude")
map2
Outra solução de patchwork seria destacar a região de interesse no mapa inserido. Isso para mim parece melhor do que uma flecha:
Você pode fazer isso com o incrível pacote
patchwork
que possui uma funçãoinset_element()
. Observe que mudei ligeiramente o tema paramap2
remover todas as marcações e rótulos dos eixos, mas você não precisa:O
cowplot
pacote pode ser montadoggplot
de várias maneiras.ggplot::annotate()
pode ser usado para desenhar uma seta no topo do gráfico.O exemplo abaixo é plotado
map1
primeiro. Além disso e no canto superior esquerdo, adicionamos um retângulo vazio, a “tela” paramap2
. Finalmente, adicionamos a seta comannotate()
. Você provavelmente desejará ajustar as coordenadas e tamanhos dos elementos.Pode ser útil fixar as dimensões do gráfico em um quadrado para tornar o posicionamento dos elementos consistente. Você pode fazer isso usando
ggsave()
o mesmo valor de altura e largura.Você pode usar
ggmagnify
:geom_magnify
Aqui está uma
grid
opção de pacote:Eu acho que você precisará suprimir os rótulos dos eixos x e na janela de visualização ampliada (ajustando
map2
), mas isso não é um problema, é?Apenas adicionando uma
cowplot
opção:Isso é um pouco chato porque você não pode usar as coordenadas originais como faria com o patchwork, então são necessárias algumas tentativas e erros - mas não consegui descobrir uma maneira com o patchwork de fazer a seta ir da inserção para o mapa geral e ser visível em ambas as camadas.
Devo observar que editei o mapa inserido para não ter legendas e ter borda: