Estou tentando redimensionar uma plotagem para caber no meu documento, mas estou tendo dificuldades para fazer com que o diagrama plotado seja um quadrado.
Exemplo:
pdf(file = "./out.pdf", width = 5, height = 5)
p <- ggplot(mydata, aes(x = col1, y = col2))
print(p)
aux <- dev.off()
Embora os limites para xey sejam iguais, o gráfico no resultado não é quadrado. Eu acho que R torna o painel envolvente 5x5 ", mas não se preocupa com o tamanho real do diagrama.
Como posso remover meus diagramas?
hjust
posição do título - tenteopts(axis.title.y=theme_text(hjust=10))
. Mas, infelizmente, parece que não. Consulte groups.google.com/group/ggplot2/browse_thread/thread/… para uma discussão da lista de e-mails ggplot e a resposta de @Baptiste.y=runif(100, 0, 50)
o aspecto do gráfico não é mais quadrado.coord_fixed()
faz com que a escala de cada eixo seja igual apenas parece?Para garantir uma proporção de aspecto específica, por exemplo, para quadrado, use
theme(aspect.ratio=1)
.A resposta de Andrie não fornece o quadro completo, pois o exemplo fornece dados talvez não naturais, onde o intervalo de x é igual ao intervalo de y. No entanto, se os dados fossem:
df <- data.frame( x = runif(100, 0, 50), y = runif(100, 0, 5)) ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
então o enredo ficaria assim:
A função coord_fixed () também tem um argumento para ajustar a proporção dos eixos:
Para que o enredo pudesse ser alinhado com:
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed(ratio=10)
Mas você precisa ajustar isso com os limites das variáveis ou área do gráfico (nem todos os limites são bem divisíveis por números inteiros como esses exemplos).
fonte
Para completar: se você quiser levar em consideração os limites do eixo muito diferentes:
df <- data.frame( x = runif(100, 0, 5000), y = runif(100, 0, 5)) ratio.display <- 4/3 ratio.values <- (max(df$x)-min(df$x))/(max(df$y)-min(df$y)) plot <- ggplot(df, aes(x=x, y=y)) + geom_point() plot + coord_fixed(ratio.values / ratio.display)
Resultando em:
fonte
plot + theme(aspect.ratio=4/3)
? O ggplot pode ter várias camadas, com vários conjuntos de dados, e os eixos podem ter fatores de expansão arbitrários, portanto, calcular a razão de y / x de uma fonte de dados parece bastante frágil.