programing

Y 축에서 텍스트와 제목 사이의 거리 증가

goodcopy 2023. 6. 17. 18:16
반응형

Y 축에서 텍스트와 제목 사이의 거리 증가

Y 축 제목이 축 텍스트에 너무 가깝게 나타납니다.

ggplot(mpg, aes(cty, hwy)) + geom_point()

ggplot output

여러 매개 변수의 값을 변경하려고 시도했습니다.theme()아무도 도움이 되지 않는 것 같습니다.

부터ggplot2 2.0.0사용할 수 있습니다.margin =의 주장.element_text()축 제목과 숫자 사이의 거리를 변경합니다.의 값을 설정합니다.margin위에top,r좋아요.b아래쪽, 그리고l요소의 왼쪽입니다.

ggplot(mpg, aes(cty, hwy)) + geom_point()+
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)))

margin다른 용도로도 사용할 수 있습니다.element_text요소(참조)?theme), 등axis.text.x,axis.text.y그리고.title.

추가

축이 다른 위치를 가질 때 축 제목의 여백을 설정하기 위해(예:scale_x_...(position = "top")다른 테마 설정이 필요합니다. 예를 들어,axis.title.x.tophttps://github.com/tidyverse/ggplot2/issues/4343 을 참조하십시오.

포럼 게시물을 기반으로 합니다. https://groups.google.com/forum/ #!topic/ggplot2/mK9DR3dKIBU

가장 쉬운 방법은 x축 앞과 y축 레이블 뒤에 줄 바꿈(\n)을 추가하는 것 같습니다.위에 게시된 솔루션보다 훨씬 쉬워 보입니다(더 멍청하긴 하지만).

ggplot(mpg, aes(cty, hwy)) + 
    geom_point() + 
    xlab("\nYour_x_Label") + ylab("Your_y_Label\n")

보다 세분화된 제어 기능을 제공하는 솔루션\n하지만 마진을 추가하는 것보다 덜 번거롭습니다.vjust에서theme기능.

공간을 추가하기 위해 y축 또는 (x축)의 위치를 조정하기 위해 종종 다음과 같은 의 값을 사용해야 합니다.vjust(y축) 또는 음의 값:vjust와 같은 (x축)theme(axis.title.y = element_text(vjust = 2))아래의 완전하게 작동한 예를 참조하십시오.

# load patchwork to show plots side-by-side
library(patchwork)
library(ggplot2)

# Plot A: just for comparison, moving titles *inward*
p1 <- ggplot(mpg, aes(cty, hwy)) + 
  geom_point() + 
  theme_gray() +
  theme(
    axis.title.y = element_text(vjust = -3),
    axis.title.x = element_text(vjust = +3)
  ) 

# Plot B: what we want, moving titles *outward*
p2 <- ggplot(mpg, aes(cty, hwy)) + 
  geom_point() + 
  theme_gray() +
  theme(
    axis.title.y = element_text(vjust = +3),
    axis.title.x = element_text(vjust = -0.75)
  ) 

# show plots side-by-side with patchwork package
p1 + p2 +
  plot_annotation(tag_levels = "A")

enter image description here

어떤 이유에서인지 디지스 엘퍼츠가 제안한 마진 논쟁은 저에게 효과가 없었습니다.그래서 저는 빈 줄을 추가하는 것보다 유연하지만 축 눈금을 포기해야 하는 다른 해킹을 사용했습니다.

myplot + theme(axis.ticks.x = element_blank(), axis.ticks.length.x = unit(3.25, "cm")

제 생각에, 여러분은 수동으로 틱 마크를 추가할 수 있습니다.geom_segment또 다른 가능성은 아마도[ggalt::annotation_ticks][1]하지만 저도 굳이 시도하지 않았습니다(현재 버전의 Ggalt on CRAN(0.4)은 이 기능을 지원하지 않고, on github(0.6)은 지원합니다).

언급URL : https://stackoverflow.com/questions/14487188/increase-distance-between-text-and-title-on-the-y-axis

반응형