ggplot2의 중심 플롯 제목


254

안녕하세요,이 간단한 코드 (그리고 오늘 아침의 모든 스크립트)가 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")

여기에 이미지 설명을 입력하십시오


53
사용... + theme(plot.title = element_text(hjust = 0.5))
J_F

답변:


333

보도 자료 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")

여기에 이미지 설명을 입력하십시오

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

여기에 이미지 설명을 입력하십시오


대신 사용 ... theme(plot.title = element_text(hjust = 'center'))하면 오류 경고 메시지가 표시 1: In unit(rep(xp, n), "npc") : NAs introduced by coercionv2: In validDetails.text(x) : NAs introduced by coercion 되며 제목이 없습니다. 이것이 버그입니까?
James Hirschorn 1

2
@JamesHirschorn 이것은 버그가 아닙니다. 에 사용되는 값 hjust은 숫자 여야합니다.
Stibu

ggplot2 버전 3.3.0부터 제목은 기본적으로 가운데에 있습니다.
Akronix

다른 방법으로 관심이 있다면 : 중심 정렬에서 왼쪽 정렬로 이동하면 다음과 같은 답변을 사용할 수 있습니다. stackoverflow.com/a/57792897/2904315
Akronix

이 코드를 추가 theme(plot.title = element_text(hjust = 0.5))했지만 문제가 해결되지 않았습니다.
ahbon

134

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")

여기에 이미지 설명을 입력하십시오

원래 ggplot2 기본 설정으로 돌아가려면 R 세션을 다시 시작하거나

theme_set(theme_gray())

2

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()

여기에 이미지 설명을 입력하십시오

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.