2017-11-11 1 views
1

10 월에서 4 월까지의 달만 나열하는 데이터 프레임이 있습니다. 이 데이터를 선 그래프로 그릴 때 미사용 월도 포함됩니다. 나는 데이터에 나열된 달을 보여 주기만하면 플롯에 사용되지 않는 공간이 없습니다.ggplot에서 사용하지 않은 월 제거

내가 플롯을 위해 사용하고 코드

gplot(df,aes(GAME_DATE,DEF_RATING)) + 
    geom_line(aes(y=rollmean(df$DEF_RATING,9, na.pad = TRUE))) + 
    geom_line(aes(y=rollmean(df$OFF_RATING,9,na.pad = TRUE)),color='steelblue') 

enter image description here

샘플 데이터

GAME_DATE OFF_RATING DEF_RATING 
     <dttm>  <dbl>  <dbl> 
1 2017-04-12  106.1  113.1 
2 2017-04-10  107.1  100.8 
3 2017-04-08  104.4  105.1 
4 2017-04-06  116.1  105.9 
5 2017-04-04  116.9  116.0 
+0

당신이 몇 가지 예제 데이터를 제공 할 수주십시오

여기에 가짜 데이터를 예를 들어입니까? 도움을 받으려면 https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example을 확인하십시오. – Phil

+0

'aes '안에 데이터 프레임 이름을 다시 써 넣는 것은 불필요하며 바람직하지 않습니다. 'geom_line (aes (y = rollmean (DEF_RATING, 9, na.pad = TRUE)))')과 같은 변수 이름만을 사용하십시오. – eipi10

+0

@ 필례는 예제 데이터를 추가했습니다. – jhaywoo8

답변

0
당신은 당신의 선물을 ") (scale_x_date"로 X 축 구분을 시도 할 수 있습니다

다음과 같은 날짜 :

gplot(df,aes(GAME_DATE,DEF_RATING)) + 
geom_line(aes(y=rollmean(df$DEF_RATING,9, na.pad = TRUE))) + 
geom_line(aes(y=rollmean(df$OFF_RATING,9,na.pad = TRUE)),color='steelblue') +  
scale_x_date(date_labels="%b",breaks=seq(min(df$GAME_DATE),max(df$GAME_DATE), "1 month")) 
1

ggplot2은 잘못된 축이 될 수 있으므로 깨진 축을 허용하지 않습니다. 그러나이 작업을 계속 진행하려면 패 시팅으로 끊어진 축을 시뮬레이션 할 수 있습니다. 이렇게하려면 데이터가있는 각 "아일랜드"를 고유 그룹 코드로 표시 한 다음 해당 그룹 코드로 패싯 화하는 그룹화 변수를 만드십시오.

플롯하기 전에 데이터를 긴 형식으로 변환해야하므로 geom_line을 한 번 호출하여 두 개의 개별 컬러 라인을 얻을 수 있습니다. 열을 aes 내부의 색으로 매핑하면 범례가 자동으로 생성됩니다.

library(tidyverse) 

# Fake data 
set.seed(2) 
dat = data.frame(x=1950:2000, 
       y1=c(cumsum(rnorm(30)), rep(NA,10), cumsum(rnorm(11))), 
       y2=c(cumsum(rnorm(30)), rep(NA,10), cumsum(rnorm(11)))) 

dat %>% 
    # Convert to long format 
    gather(key, value, y1:y2) %>% 
    # Add the grouping variable 
    group_by(key) %>% 
    mutate(group=c(0, cumsum(diff(as.integer(is.na(value)))!=0))) %>% 
    # Remove missing values 
    filter(!is.na(value)) %>% 
    ggplot(aes(x, value, colour=key)) + 
    geom_line() + 
    scale_x_continuous(breaks=seq(1950,2000,10), expand=c(0,0.1)) + 
    facet_grid(. ~ group, scales="free_x", space="free_x") + 
    theme(strip.background=element_blank(), 
      strip.text=element_blank()) 

enter image description here

+0

샘플 데이터로 어떻게 할 수 있습니까? – jhaywoo8