programing

ggplot2의 중심 그림 제목

padding 2023. 7. 2. 19:06
반응형

ggplot2의 중심 그림 제목

이 간단한 코드(그리고 오늘 아침의 모든 스크립트)는 ggplot2의 오프센터 제목을 제공하기 시작했습니다.

Ubuntu version: 16.04

R studio version: Version 0.99.896

R version: 3.3.2

GGPLOT2 version: 2.2.0

이 문제를 해결하기 위해 오늘 아침에 위의 것을 새로 설치했습니다.

dat <- data.frame(
time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23)
)

# Add title, narrower bars, fill color, and change axis labels
ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) + 
  geom_bar(colour="black", fill="#DD8888", width=.8, stat="identity") + 
  guides(fill=FALSE) +
  xlab("Time of day") + ylab("Total bill") +
  ggtitle("Average bill for 2 people")

enter image description here

의 릴리스 뉴스에서ggplot 2.2.0"이제 메인 플롯 제목이 자막과 함께 더 잘 작동하도록 왼쪽으로 정렬되었습니다."참고 항목plot.title에 있어서의 논쟁.?theme"기본적으로 왼쪽 정렬".

@J_F가 지적한 바와 같이, 다음과 같이 추가할 수 있습니다.theme(plot.title = element_text(hjust = 0.5))제목의 중심을 잡습니다.

ggplot() +
  ggtitle("Default in 2.2.0 is left-aligned")

enter image description here

ggplot() +
  ggtitle("Use theme(plot.title = element_text(hjust = 0.5)) to center") +
  theme(plot.title = element_text(hjust = 0.5))

enter image description here

Henrik의 답변에 명시된 바와 같이, 제목은 ggplot 2.2.0부터 시작하여 기본적으로 왼쪽 정렬됩니다.제목은 그림에 다음을 추가하여 중앙에 배치할 수 있습니다.

theme(plot.title = element_text(hjust = 0.5))

그러나 많은 그래프를 만들면 이 선을 모든 곳에 추가하는 것이 지루할 수 있습니다.그런 다음 ggplot의 기본 동작을 다음과 같이 변경할 수 있습니다.

theme_update(plot.title = element_text(hjust = 0.5))

이 선을 실행하면 이후에 생성된 모든 플롯이 테마 설정을 사용합니다.plot.title = element_text(hjust = 0.5)기본값:

theme_update(plot.title = element_text(hjust = 0.5))
ggplot() + ggtitle("Default is now set to centered")

enter image description here

원래 ggplot2 기본 설정으로 돌아가려면 R 세션을 다시 시작하거나 기본 테마를 선택합니다.

theme_set(theme_gray())

ggeasy패키지에는 다음과 같은 기능이 있습니다.easy_center_title()바로 그것을 하기 위해서.저는 그것이 훨씬 더 매력적이라고 생각합니다.theme(plot.title = element_text(hjust = 0.5))기억하기가 훨씬 쉽죠

ggplot(data = dat, aes(time, total_bill, fill = time)) + 
  geom_bar(colour = "black", fill = "#DD8888", width = .8, stat = "identity") + 
  guides(fill = FALSE) +
  xlab("Time of day") +
  ylab("Total bill") +
  ggtitle("Average bill for 2 people") +
  ggeasy::easy_center_title()

enter image description here

이 답변을 작성할 때 개발 버전을 설치해야 합니다.ggeasyGitHub에서 사용할 데이터easy_center_title()실행하면 됩니다.remotes::install_github("jonocarroll/ggeasy").

그래프와 ggplot을 많이 사용하는 경우 매번 테마()를 추가하기가 어려울 수 있습니다.앞에서 제안한 대로 기본 테마를 변경하지 않으려면 개인 테마를 더 쉽게 만들 수 있습니다.

personal_theme = theme(plot.title = 
element_text(hjust = 0.5))

p1, p2 및 p3 그래프가 여러 개 있다고 가정하면 personal_테마를 추가하면 됩니다.

p1 + personal_theme
p2 + personal_theme
p3 + personal_theme

dat <- data.frame(
  time = factor(c("Lunch","Dinner"), 
levels=c("Lunch","Dinner")),
  total_bill = c(14.89, 17.23)
)
p1 = ggplot(data=dat, aes(x=time, y=total_bill, 
fill=time)) + 
  geom_bar(colour="black", fill="#DD8888", 
width=.8, stat="identity") + 
  guides(fill=FALSE) +
  xlab("Time of day") + ylab("Total bill") +
  ggtitle("Average bill for 2 people")

p1 + personal_theme

개지 패키지는 팩맨으로 실행하면 나에게 잘 해주었습니다:p_load 패키지.

ggplot2를 보다 쉽게 사용할 수 있는 도우미 기능.[패키지 게이지 버전 0.1.4색인]

언급URL : https://stackoverflow.com/questions/40675778/center-plot-title-in-ggplot2

반응형