Duvida: Desconfiguração de gráficos arranjados

Prezados(as) colegas. Estou tentando plotar gráficos que fiz individualmente usando o pacote ggplot2. Porém quando vou juntar quatro gráficos em uma só imagem usando o a função ggarrange:

ggfinal ← ggarrange(ggacm+rremove(“x.text”)+rremove(“x.title”),
ggLF+rremove(“x.text”)+rremove(“x.title”),
ggCOLMO,ggMM,
labels = c(“A)”,“B)”,“C)”,“D)”),
ncol = 2, nrow = 2,
heights = c(1,1.08))

Os gráficos saem desconfigurados, com legendas e textos se sobrepondo como na imagem:

Alguém poderia me ajudar a solucionar esse problema, para que eu possa salvar imagens de qualidade sem que elas estejam desconfiguradas? Desde já Obrigado!

1 curtida

Tem um pacote novo chamado patchwork que resolve bem esse problema. Aqui vai um exemplo:

library(ggplot2)
library(patchwork)

p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))

(p1 | p2) / (p3 | p4)
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Created on 2020-03-05 by the reprex package (v0.3.0)

1 curtida

Prezado dfalbel, obrigado pela resposta. Usei a sua recomendação e o problema persistiu:

Percebi que, de alguma forma, a legenda dos gráficos e o título dos eixos não acompanham o redimensionamento do gráfico. O gráfico só fica bem visível quando eu uso o Zoom, e posso “esticar a janela para melhor visualizar”: Porém não posso salvar o gráfico, usando a função ggsalve, por exemplo, do jeito que ele está na janela Plot Zoom.

Entendo… talvez você precise modificar os argumentos da função ggsave. Por exemplo, como código abaixo fiz:

library(ggplot2)
library(patchwork)

titulo <- ggtitle("titulo muito longo para caber em cima do gráfico")
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp)) + titulo
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear)) + titulo
p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec)) + titulo
p4 <- ggplot(mtcars) + geom_bar(aes(carb)) + titulo

g <- (p1 | p2) / (p3 | p4)

E salvei duas versões, uma usando scale=1 e outra usando scale=2:

ggsave("hi1.png", g, scale = 1)
ggsave("hi2.png", g, scale = 2)

Veja que na segunda, o título coube bem. Então talvez se você escolher um bom valor para o scale o seu gráfico fique salvo do jeito que vc quer.

1 curtida

Prezado dfalbel. Usando a função ggsave como você descreveu, eu consegui salvar a imagem do jeito que eu pretendia. Muito obrigado pela ajuda.

3 curtidas