ggplot을 사용하여 플롯을 만들 때 hjust와 vjust는 무엇을 합니까?
ggplot을 사용하여 플롯을 만들 때마다 hjust와 vjust에 대한 다른 값을 다음과 같은 선으로 시도하면서 약간의 시간을 보냅니다.
+ opts(axis.text.x = theme_text(hjust = 0.5))
축 레이블이 축에 거의 닿고 축 레이블에 대해 평평한 위치에 정렬되도록 합니다(예: 축과 동일).하지만, 저는 무슨 일이 일어나고 있는지 잘 이해하지 못합니다. 자주,hjust = 0.5
와는 매우 다른 결과를 제공합니다.hjust = 0.6
예를 들어, 나는 단지 다른 가치관을 가지고 노는 것만으로는 그것을 알아낼 수 없었습니다.
hjust 및 vjust 옵션이 어떻게 작동하는지에 대한 포괄적인 설명을 알려줄 수 있는 사람이 있습니까?
값hjust
그리고.vjust
과 10 됩니다.
- 0은 왼쪽 화살표를 의미합니다.
- 1은 우향우향을 의미합니다.
출처: ggplot2, Hadley Wickham, 196페이지
예, 대부분의 경우 이 범위를 초과하여 사용할 수 있지만 특정 방식으로 작동할 것으로 예상하지 마십시오.이것은 규격을 벗어난 것입니다.)
hjust
과 수평 맞춤을 제어합니다.vjust
수직 맞춤을 제어합니다.
예를 들어 다음과 같이 설명해야 합니다.
td <- expand.grid(
hjust=c(0, 0.5, 1),
vjust=c(0, 0.5, 1),
angle=c(0, 45, 90),
text="text"
)
ggplot(td, aes(x=hjust, y=vjust)) +
geom_point() +
geom_text(aes(label=text, angle=angle, hjust=hjust, vjust=vjust)) +
facet_grid(~angle) +
scale_x_continuous(breaks=c(0, 0.5, 1), expand=c(0, 0.2)) +
scale_y_continuous(breaks=c(0, 0.5, 1), expand=c(0, 0.2))
변경 시 발생하는 작업을 이해hjust
축 문자에서는 축 문자에 대한 수평 선형이 x축이 아닌 전체 그림(여기에는 y축 문자가 포함됨)과 관련하여 정의된다는 것을 이해해야 합니다.(제가 보기에 이것은 불행한 일입니다.축을 기준으로 정렬하는 것이 훨씬 유용할 것입니다.)
DF <- data.frame(x=LETTERS[1:3],y=1:3)
p <- ggplot(DF, aes(x,y)) + geom_point() +
ylab("Very long label for y") +
theme(axis.title.y=element_text(angle=0))
p1 <- p + theme(axis.title.x=element_text(hjust=0)) + xlab("X-axis at hjust=0")
p2 <- p + theme(axis.title.x=element_text(hjust=0.5)) + xlab("X-axis at hjust=0.5")
p3 <- p + theme(axis.title.x=element_text(hjust=1)) + xlab("X-axis at hjust=1")
library(ggExtra)
align.plots(p1, p2, p3)
에서 발생하는 현상을 탐색하기 위해vjust
레이블 : 축 블 정 렬 레
DF <- data.frame(x=c("a\na","b","cdefghijk","l"),y=1:4)
p <- ggplot(DF, aes(x,y)) + geom_point()
p1 <- p + theme(axis.text.x=element_text(vjust=0, colour="red")) +
xlab("X-axis labels aligned with vjust=0")
p2 <- p + theme(axis.text.x=element_text(vjust=0.5, colour="red")) +
xlab("X-axis labels aligned with vjust=0.5")
p3 <- p + theme(axis.text.x=element_text(vjust=1, colour="red")) +
xlab("X-axis labels aligned with vjust=1")
library(ggExtra)
align.plots(p1, p2, p3)
아마도 가장 결정적인 것은 ggplot2 책의 초판 그림 B.1(d)일 것입니다.
참고: https://ggplot2-book.org/ 에서 이용할 수 있는 책의 3판에는 이러한 부록이나 그림이 없는 것으로 보입니다.
하지만, 그것은 그렇게 간단하지 않습니다. hjust
그리고.vjust
설명된 바와 같이 그것이 어떻게 작동하는지가 있습니다.geom_text
그리고.theme_text
하는 한 은 텍스트이고, 로 생각하는 것입니다(크기가 의 경우 ).텍스트 주위의 상자를 생각하는 한 가지 방법은 참조점이 해당 상자와 관련된 경우 상자의 크기에 상대적인 단위로 생각하는 것입니다(따라서 크기가 다른 텍스트의 경우 다릅니다).안 안hjust
0와 0.5˚의vjust
의 값은 중심을 맞춥니다.0.5의 값은 상자의 중심을 맞춥니다. 소hjust
상자 너비 배만큼 상자를 오른쪽으로 이동합니다.0.5-hjust
그러므로 언제hjust=0
상자의 왼쪽 가장자리가 기준점에 있습니다.증가하는hjust
상자 너비 배만큼 왼쪽 상자를 이동합니다.hjust-0.5
.언제hjust=1
상자가 가운데에서 왼쪽으로 반 상자 너비로 이동되어 오른쪽 가장자리가 기준점에 놓입니다.한다면hjust=2
상자의 오른쪽 가장자리는 참조점의 왼쪽 상자 너비입니다(중앙은2-0.5=1.5
상자 너비가 기준 지점의 왼쪽에 있습니다.수직의 경우 위에 있는 것은 적고 아래에 있는 것은 더 많습니다.이것은 효과적으로 그림 B.1(d)이 말하는 것이지만 [0,1] 이상으로 추정됩니다.
하지만, 때때로 이것은 효과가 없습니다.예를들면
DF <- data.frame(x=c("a","b","cdefghijk","l"),y=1:4)
p <- ggplot(DF, aes(x,y)) + geom_point()
p + opts(axis.text.x=theme_text(vjust=0))
p + opts(axis.text.x=theme_text(vjust=1))
p + opts(axis.text.x=theme_text(vjust=2))
세 개의 후자의 그림은 동일합니다.왜 그런지 모르겠어요.또한 텍스트가 회전하면 더 복잡해집니다.고려하다
p + opts(axis.text.x=theme_text(hjust=0, angle=90))
p + opts(axis.text.x=theme_text(hjust=0.5 angle=90))
p + opts(axis.text.x=theme_text(hjust=1, angle=90))
p + opts(axis.text.x=theme_text(hjust=2, angle=90))
첫 번째는 라벨을 정렬된 상태로 두고, 두 번째는 라벨을 정렬된 상태로 상자 안에 배치하여 중심을 정렬하고, 세 번째는 라벨을 정렬하여 오른쪽을 정렬합니다(그래서 오른쪽이 축 옆에 정렬됨).).마지막으로, 글쎄요, 저는 일관성 있는 방식으로 설명할 수 없습니다.그것은 텍스트의 크기, 가장 넓은 텍스트의 크기와 관련이 있습니다. 그리고 저는 다른 것이 무엇인지 잘 모르겠습니다.
언급URL : https://stackoverflow.com/questions/7263849/what-do-hjust-and-vjust-do-when-making-a-plot-using-ggplot
'programing' 카테고리의 다른 글
ePub 형식을 읽는 중 (0) | 2023.07.07 |
---|---|
Oracle에서 선택한 행에서 행 번호를 가져오는 방법 (0) | 2023.07.07 |
Oracle PL/SQL 문자열 비교 문제 (0) | 2023.07.07 |
Windows 7에서 명령 프롬프트에서 Python 프로그램을 실행하는 방법은 무엇입니까? (0) | 2023.07.07 |
메모리 제한 초과로 인해 Firebase의 클라우드 기능이 중지되었습니다. (0) | 2023.07.07 |