ggplot에서 종횡비를 수정하는 방법은 무엇입니까?
내 문서에 맞게 플롯의 크기를 조정하려고하는데 플롯 된 다이어그램이 정사각형이되도록하는 데 어려움이 있습니다.
예:
pdf(file = "./out.pdf", width = 5, height = 5)
p <- ggplot(mydata, aes(x = col1, y = col2))
print(p)
aux <- dev.off()
x와 y의 한계는 동일하지만 결과의 플롯은 정사각형이 아닙니다. R은 주변 패널을 5x5 "로 만들지 만 실제 다이어그램 크기는 신경 쓰지 않습니다.
내 다이어그램을 어떻게 풀 수 있습니까?
에서 ggplot
플롯의 화면 비율을 유지하는 메커니즘 추가하는 것입니다 coord_fixed()
플롯에 레이어를. 이렇게하면 실제 경계 상자의 모양에 관계없이 플롯 자체의 종횡비가 유지됩니다.
(또한 ggsave
결과 플롯을 pdf(); print(p); dev.off()
시퀀스가 아닌 pdf / png / etc에 저장 하는 데 사용 하는 것이 좋습니다 .)
library(ggplot2)
df <- data.frame(
x = runif(100, 0, 5),
y = runif(100, 0, 5))
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
특정 종횡비 (예 : 정사각형)를 확인하려면을 사용하십시오 theme(aspect.ratio=1)
.
Andrie의 답변은 x의 범위가 y의 범위와 같은 경우 부 자연스러운 데이터를 제공하기 때문에 전체 그림을 제공하지 않습니다. 그러나 데이터가 다음과 같은 경우 :
df <- data.frame(
x = runif(100, 0, 50),
y = runif(100, 0, 5))
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
그러면 플롯은 다음과 같습니다.
coord_fixed () 함수에는 축의 비율을 조정하는 인수도 있습니다.
ratio
가로 세로 비율, y / x로 표시
플롯을 다음과 같이 정사각형으로 만들 수 있습니다.
ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed(ratio=10)
그러나 변수 또는 플롯 영역의 한계로이를 조정해야합니다 (모든 한계가이 예제와 같이 정수로 잘 나눌 수있는 것은 아닙니다).
완전성을 위해 : 매우 다른 축 제한을 고려하려는 경우 :
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)
를 야기하는:
참고 URL : https://stackoverflow.com/questions/7056836/how-to-fix-the-aspect-ratio-in-ggplot
'Development Tip' 카테고리의 다른 글
읽기 전용 속성을 구현하는 방법 (0) | 2020.10.28 |
---|---|
루비 클래스 상속 :`<<`(두 배 미만)이란 무엇입니까? (0) | 2020.10.28 |
PHP에서 이미지 크기 조정 (0) | 2020.10.28 |
phpmyadmin에서 시간 초과를 해결하는 방법은 무엇입니까? (0) | 2020.10.28 |
서명 된 APK Android Studio 생성 (0) | 2020.10.28 |