Pergunta sobre facet, ggplot2, r – facetas de tamanhos diferentes proporcionais ao eixo x no ggplot 2 r

30

O seguinte é uma situação:

<code>group1 <- seq(1, 10, 2)
group2 <-  seq(1, 20, 3)
x = c(group1, group2)
mydf <- data.frame (X =x , Y = rnorm (length (x),5,1), 
 groups = c(rep(1, length (group1)), rep(2, length(group2))))

ggplot(mydf, aes(X, Y, group= groups)) + geom_point()+ facet_grid (.~ group)
</code>

Diferentes facetas são dimensionadas por x limites no seguinte gráfico:

<code> ggplot(mydf, aes(X, Y, group= groups)) + geom_point()+ 
   facet_grid (.~ group, scales = "free_x")
</code>

Como largura total de x tem significado, eu quero produzir facetas de largura diferente, não só escala diferente. Assim, a largura esperada da faceta 1 deve ser metade do tamanho de 2.

BTW, eu não consegui obter o seu exemplo para ser executado. Eu sugeri mudanças editoriais, mas elas foram rejeitadas. Nas chamadas parafacet.grid(), Eu usei. ~ groups no lugar de. ~ group. Além disso,group = groups nas declarações estéticas não é necessário. Sandy Muspratt

Sua resposta

1   a resposta
45

Se eu entendi corretamente,space = "free_x" faz o que você quer.

<code>library(ggplot2)

ggplot(mydf, aes(X, Y)) + geom_point()+ 
facet_grid (.~ groups, scales = "free_x", space = "free_x")
</code>

E se você quiser o mesmo estilo de rotulagem nos eixos x:

<code>ggplot(mydf, aes(X, Y)) + geom_point()+ 
 scale_x_continuous(breaks = seq(0,20,2)) +
 facet_grid (.~ groups, scales = "free_x", space = "free_x")
</code>

space é suportado apenas parafacet_grid. O que fazer parafacet_wrap? Alguma opção? Paul McMurdie
Desculpe, deletei meu comentário sobrespace, porque descobri que o erro de argumento não reconhecido era específico parafacet_wrap. Paul McMurdie
@PaulMcMurdie Tanto quanto eu sei,facet-wrap nunca apoiou umspace argumento, mas muitosfacet_wrap comandos podem ser convertidos comofacet-grid comandos. Se você tem um enredo onde isso não é viável, talvez seja melhor fazer uma nova pergunta. Sandy Muspratt

Perguntas relacionadas