2017-03-29 5 views
7

gganimate을 사용하여 일부 월간 데이터에 애니메이션을 적용하려고합니다. 플롯은 디 센더 (기준선 아래에있는 글자, 즉 g, j, p, q 및 y)가 있으면 제목이 차지하는 공간의 양이 변경된다는 점을 제외하면 큰 효과를보고 있습니다. 이것은 차례로 타이틀의 기준선을 약간 움직이게하여 애니메이션을 손상시킵니다. 제목에 디 센더가있을 때 제목이 눈에 띄게 "점프"합니다.디 센더 문자로 애니메이션을 적용 할 때 제목 공간이 변경되지 않도록 방지

예 : 대신 플롯을 이동으로

myDF <- 
    data.frame(
    Date = seq(as.Date("2015-01-15") 
       , as.Date("2015-12-15") 
       , "1 month") 
    , x = 1:12 
    , y = 1:12 
) 

myDF$frame <- 
    factor(format(myDF$Date, "%Y-%b") 
     , levels = paste0("2015-", month.abb)) 

toAnimate <- 
    ggplot(
    myDF 
    , aes(x = x 
      , y = y 
      , frame = frame) 
) + 
    geom_point() + 
    theme_gray() 

gganimate::gganimate(toAnimate) 

enter image description here

이 문제가 더 분명했다 gganimate의 이전 버전을 사용하여 (그리고 입증 올해의 포함을 필요로하지 않았다)

gganimate::gg_animate(toAnimate) 

enter image description here

: 제목의

모든 대문자 (디 센더가 없음)를 사용하여 문제를 "고칠 수"있지만이 경우 모든 대문자의 모양 (특히 실제 사용 사례의 경우 더 큰 제목의 일부로 특히)을 좋아하지 않습니다. 예를 들어 이미 디 센더가있는 무언가로 프레임 제목을 추가 할 수도 있습니다. ggtitle("Timeperiod: ") 비록 내가이 문제를 해결하기 위해 관련성이없는 텍스트를 추가하지는 않을 것이지만 ("Timeperiod :"를 추가하면 내가 지금 당장 간다.)

theme의 도움말을 살펴본 결과 ggplot2인데이 문제를 해결할 것으로 보이지 않습니다.

+0

당신이 * gganimate *을 업데이트 시도? 가장 최신 버전은'gg_animate' 함수를'gganimate'로 대체했습니다. 새 버전으로 디 센더 문제를 재현 할 수 없습니다. – aosmith

+0

감사합니다. @aosmith. 방금 업데이트했고 문제는 잠재적으로 문제가되지 않는 한 훨씬 더 미묘합니다. 그러나 업데이트로 인해 제목의 기준선이 이동하는 것으로 보입니다 (이는 플롯 영역이 변경되는 것보다 좋지만 이상적이지는 않습니다). 이 문제는 제목에 달이 들어갈 때 미묘한 차이가 없으므로 쉽게 볼 수 있도록 플롯을 약간 조정했습니다 (연도 포함). –

답변

2

제목의 공간을 예약 할 때 제목에 텍스트의 높이만 표시되고 글꼴의 높이는 표시되지 않는 것처럼 보입니다.

대신 플롯에 어딘가에 제목을 배치하려면 geom_text을 사용할 수 있습니다. 예를 들어, 내가 할 경우 :

ggplot(myDF, aes(x=x,y=y, label=frame)) + 
    geom_point()+theme_gray() + 
    geom_text(x=2.5,y=5,aes(label=frame),adj=0) 

(단지 ggplot ... 아직 애니메이션되지로) 나는 모두가 2015 년의 정확히 중복 볼 수 있고, 달 이름의 센더 텍스트 분명이 있고, 기준선은 일정합니다.

플롯의 편리한 공간에 제목을 넣을 수 있다면 이것을 사용하여 gganimatetitle_frame=FALSE을 사용할 수 있습니다.

또한 버그/개선 보고서를 ggplot2으로 생각합니다. 당신은 제목이 큰 한 경우 충분히 실제로 플롯에 굴러 :

ggplot(myDF, aes(x=x,y=y)) +geom_point()+theme(plot.title=element_text(size=rel(10),debug=TRUE)) + labs(title="y") 

enter image description here

+0

이것은 단단한 해결책이며 큰 도움이됩니다. 실제로, 내가 만들고있는 플롯은 제목 해결 방법으로'geom_text'를 사용하는 것이 이상적이지 않은 정도로 복잡합니다 (패싯, 요소 등).ggplot2가 공간 예약을 처리 할 때 "결함"(?)이있을 수 있다는 것은 매우 흥미 롭습니다. 그러나이 유스 케이스가 재구성을 정당화하기에 충분하지는 않습니다. Upvoted,하지만 난 잠시 동안 un - accepted로 떠날 예정이다 문제를 해결하는 답변이 오는지 볼 수 있습니다. (나는 당신의 설명이 그것을 배제한다고 생각하기 때문에 의심 스럽습니다). –

+1

보이지 않는 "y"를 제목에 추가하는 방법이 있다면 작동 할 수도 있습니다 ... 높이를 고정시키는'element_text' 옵션도 없습니다. – Spacedman