Como forçar o geom_tile do ggplot a preencher todas as facetas?
Estou usando o geom_tile do ggplot para fazer gráficos de densidade 2-D facetados por um fator. A escala de todas as facetas vai do mínimo de todos os dados ao máximo de todos os dados, mas o geom_tile em cada faceta se estende apenas ao intervalo dos dados plotados nessa faceta.
Exemplo de código que demonstra o problema:
library(ggplot2)
data.unlimited <- data.frame(x=rnorm(500), y=rnorm(500))
data.limited <- subset(data.frame(x=rnorm(500), y=rnorm(500)), x<1 & y<1 & x>-1 & y>-1)
mydata <- rbind(data.frame(groupvar="unlimited", data.unlimited),
data.frame(groupvar="limited", data.limited))
ggplot(mydata) +
aes(x=x,y=y) +
stat_density2d(geom="tile", aes(fill = ..density..), contour = FALSE) +
facet_wrap(~ groupvar)
Execute o código e você verá duas facetas. Uma faceta mostra um gráfico de densidade de uma distribuição normal aleatória "ilimitada". A segunda faceta mostra um normal aleatório truncado para ficar dentro de um quadrado 2x2 sobre a origem. O geom_tile na faceta "limitada" ficará confinado dentro desta pequena caixa em vez de preencher a faceta.
last_plot() +
scale_x_continuous(limits=c(-5,5)) +
scale_y_continuous(limits=c(-5,5))
Essas últimas três linhas plotam os mesmos dados com os limites x e y especificados e, nesse caso, nenhuma das facetas estende as seções do bloco até a bord
Existe alguma maneira de forçar o geom_tile em cada faceta a estender-se a todo o alcance da facet