Estoy tratando de cambiar el tamaño de un gráfico para que quepa en mi documento, pero tengo dificultades para que el diagrama trazado sea un cuadrado.
Ejemplo:
pdf(file = "./out.pdf", width = 5, height = 5)
p <- ggplot(mydata, aes(x = col1, y = col2))
print(p)
aux <- dev.off()
Aunque los límites para xey son los mismos, la gráfica del resultado no es cuadrada. Supongo que R hace que el panel envolvente sea de 5x5 "pero no le importa el tamaño real del diagrama.
¿Cómo puedo deshacer mis diagramas?
hjust
posición del título, inténtaloopts(axis.title.y=theme_text(hjust=10))
. Pero, lamentablemente, parece que no. Consulte groups.google.com/group/ggplot2/browse_thread/thread/… para ver una discusión sobre la lista de correo de ggplot y la respuesta de @ Baptiste.y=runif(100, 0, 50)
entonces el aspecto del gráfico ya no es cuadrado.coord_fixed()
hace que la escala de cada eje sea igual solo que parece?Para garantizar una relación de aspecto particular, por ejemplo, para cuadrado, utilice
theme(aspect.ratio=1)
.La respuesta de Andrie no ofrece una imagen completa, ya que el ejemplo proporciona datos quizás no naturales donde el rango de x es igual al rango de y. Sin embargo, si los datos fueran:
df <- data.frame( x = runif(100, 0, 50), y = runif(100, 0, 5)) ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
entonces la trama se vería así:
La función coord_fixed () también tiene un argumento para ajustar la relación de ejes:
Para que la trama pueda cuadrar con:
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed(ratio=10)
Pero necesita ajustar esto con los límites de las variables o el área de la gráfica (no todos los límites son divisibles por números enteros como estos ejemplos).
fuente
En aras de la integridad: si desea tener en cuenta límites de eje muy 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 en:
fuente
plot + theme(aspect.ratio=4/3)
? El ggplot puede tener múltiples capas, con múltiples conjuntos de datos, y los ejes pueden tener factores de expansión arbitrarios, por lo que calcular la relación de y / x de una fuente de datos parece bastante frágil.