Tenho dois ggplot
objetos como abaixo.
library(ggplot2)
set.seed(1)
dat1 = data.frame(x = rnorm(1000), y = rnorm(1000))
dat2 = data.frame(x = rt(5000, 2))
Plot1 = ggplot(data = dat1, aes(x = x, y = y)) + geom_point()
Plot2 = ggplot(dat2) + geom_histogram(aes(x = x))
Agora eu gostaria de sobrepor Plot2
na Plot1
parte central esquerda de Plot1
. Saída desejada
Para melhor visibilidade, também desejo ter alguma transparência Plot2
para que Plot1
não fique completamente mascarado na região de sobreposição.
Existe alguma maneira de fazer isso? Pesquisei informações relevantes na internet, mas todas parecem se referir à adição de camadas. Meu gráfico final será diferente de apenas adicionar camadas.
Conforme parcialmente sugerido em uma resposta já excluída, podemos usar
patchwork::inset_element()
para isso.Eu usei
fill="#ffffffaa"
, mas"transparent"
dá transparência total.Editar após requisitos extras Você pode usar
cowplot::ggdraw
para sobrepor o plot2-grob sobre o plot1 posicionando-o dentro do plot 1 usando coordenadas de dispositivo normalizadas [0,1] + definindo o fundo como semitransparente usandopanel.background = element_rect(fill = alpha('#D3D3D3', 0.6)
panel.grid = element_blank()
)dando