2014-12-24 4 views
1

다음 데이터를 사용하여 ggplot2를 사용하여 간단한 선형 차트를 생성 할 수 있습니다.ggplot2의 누적 요약 - 점을 연결할 그룹 지정

structure(list(years = 2003:2014, year.count = c(4, 3, 7, 0, 
3, 6, 6, 4, 4, 8, 1, 1)), .Names = c("years", "year.count"), row.names = c(NA, 
-12L), class = "data.frame") 

ggplot(df, aes(as.factor(years), y= year.count, group=1)) + 
geom_line(colour="red") + 
geom_point(colour="red") + 
theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

그러나 누적 요약을 시도 할 때 점은 문제없이 플로팅되지만 점은 선으로 연결되지 않습니다.

ggplot(df, aes(as.factor(years), y = cumsum(year.count))) + 
geom_line(group=1) + 
geom_point() + 
theme(axis.text.x = element_text(angle=45, hjust=1)) 

나는 오류가 나는 aesgeom_line하지만 둘 다 일을 지정하려 한 group=1 인수, 함께 할 수있다 같은데요. 그것은 간단한 수정이어야합니다 - 실제 코드에 대한 설명이나이 정보에 대한 언급은 크게 감사 할 것입니다. 여기

내가 조사하지만 해결책을 발견하지 않은 몇 게시물입니다 : http://goo.gl/cH0a06 http://goo.gl/5AzAcu

+3

'group = 1'을 사용하면 여기에 해킹이 있습니다. x 값이 정말로 범주 적이면 점을 선과 연결하거나 누적 합계를 계산해서는 안됩니다. – Roland

+0

@Roland - 내가 바라던 논리입니다. –

답변

3

이 나를 위해 작동합니다 : 그것은 나에게 많은 이해가되지 않았기 때문에 내가 이해하지만 내가는 as.factor을 제거하면 그 멋지게 레이블이 붙은 x 축을 갖기 위해 그것을 넣으십시오. 그래서 x 축을 scale_x_continuous으로 수정하여 pretty이되도록했습니다. 다른 주에

ggplot(df, aes(years, y = cumsum(year.count))) + 
    geom_line(colour="red") + 
    geom_point(colour="red") + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
    scale_x_continuous(breaks=pretty(df$years)) 

, 나는 어쩌면 떨어져 cumsum을 계산하는 것이 안전 할 것이다, aes 내부 작업 을 가지고 조금 위험하다 생각합니다. 그게 내가하는 방법이야.

+0

마지막 요점을 모르겠습니다. 'aes'에서 위험한 것으로 계산하는 이유는 무엇이라고 생각합니까? – Roland

+0

실제로 x 값이 범주형 일 경우 나쁠 수 있습니다. 그러나 나는 두려움을 설명하기 위해 모범을 보일 수 없다 ... 그것은 더욱 무서운 것이다. –

+0

두려움은 없습니다. 그것은 모두 data.frame 내부에서 일어나고 있습니다. 즉, 'cumsum'은 x 값을 신경 쓰지 않습니다. – Roland

관련 문제