2017-12-22 6 views
3

요일에 전체 날짜로부터 XTICK 변경 ggplot. 나는 다음과 같은 코드가R 내가 요일의 이름을 표시 (텍스트 날로부터 내 선 그림에 XTICK을 변경하려면

을 하지만 XTICK 현재 표시되지 않는 사람이 나를 도울 수

lab_day <- c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 
'Saturday', 'Sunday') 
ggplot(stats.gender.wdayF, aes(x=date)) + 
    geom_line(aes(y=stats.gender.wdayF$sum), color = 'red') + 
    geom_point(aes(y=stats.gender.wdayF$sum), color = 'red') + 
    geom_line(aes(y=stats.agg.wday$sum), color = 'grey') + 
    geom_point(aes(y=stats.agg.wday$sum), color = 'grey') + 
    scale_x_date(labels = lab_day) + 
    xlab("") + 
    ylab("Number of runs") 

dataset looks like: 
date, sum 
17/12/2017, 1 
18/12/2017, 10 
19/12/2017, 25 
20/12/2017, 2 
21/12/2017, 33 
22/12/2017, 5 
22/12/2017, 11 
+0

우리는 당신의 데이터 세트'stats.gender.wdayF'이 없습니다. 따라서 재현 가능한 예제를 제공하십시오. –

+0

완료. 귀하의 제안에 감사드립니다. –

+0

'dput()'을 사용하여 해당 데이터 세트를 공유하십시오 (나중에 참조 할 수 있도록). 누군가가 이러한 값을 수동으로 입력하는 것은 다소 번거 롭습니다. – InfiniteFlashChess

답변

0

TRY) (당신의 scale_x_date에 형식 = "%의 A"을 추가하는 기능 -.? 나는 그 문제를 해결할한다고 생각 ...

그래도 작동하지 않으면에 따라, "레이블을 제공하는 문자 벡터 (길이는 breaks이어야합니다)". 귀하의 경우 breaks은 null이므로 문제가 될 수도 있습니다. 아마도 휴식 인수를 추가 해보시겠습니까?

+0

참고로, 이것은 x 축의 날짜를 dayname 형식으로 다시 포맷해야합니다. 실제로 데이터를 그룹화 할 생각은 없습니다. 나는 dayname을 기반으로 한 투어 데이터를 그룹화하라는 요구를하지 않았지만, 실제로 그것이 당신이 찾고있는 것이라면, 그것은 추가적인 코드가 필요할 것입니다. – james5

+0

불행히도 그것은 당신의 제안에 대한 –

0

다른 열에 날짜 이름을 만든 다음 scale_x_discrete()을 사용하여 x_axis 레이블을 만들 것을 제안합니다. 이것은 훨씬 쉬울 것입니다. 예를 들어

:

library(dplyr) 
library(data.table) 

stats.gender.wdayF <- read.table(text = "date2 sum gender 
17/12/2017 1 m 
18/12/2017 10 F 
19/12/2017 25 m 
20/12/2017 2 m 
21/12/2017 33 m 
22/12/2017 5 m 
22/12/2017 11 F", header = T)%>% as.data.table() 

stats.gender.wdayF[, lab_day2 := weekdays(date2 %>% as.Date())] 

ggplot(stats.gender.wdayF, aes(x=date2 %>% as.character())) + 
    geom_line(aes(y=sum), color = 'red') + 
    geom_point(aes(y=sum), color = 'red') + 
    # geom_line(aes(y=stats.agg.wday$sum), color = 'grey') + 
    # geom_point(aes(y=stats.agg.wday$sum), color = 'grey') + 
    # scale_x_date(date_labels = '%d %b %Y', date_minor_breaks = '1 day') + 
    scale_x_discrete(labels = stats.gender.wdayF$lab_day2 %>% paste(stats.gender.wdayF$date2, sep = '\n')) 
    # xlab("") + 
    # ylab("Number of runs") 

enter image description here

+0

주셔서 감사합니다 작동하지 않습니다. 불행히도 R은 함수를 찾을 수 없습니다 : =. 왜 R이 그렇게 단순하지 않은지 모르겠다. –

+0

@federicozampu "%> %"에 대한 dplyr 패키지와 ": ="에 대한'data.table' 패키지를로드해야한다고 생각한다. George Sotiropoulos의 코드를 사용해 보았습니다. 여기에 음모가 있습니다. –

+1

사과드립니다. 고마워요 –