2011-02-11 5 views
3

저는 ggplot2 초보자이며 시계열과 관련하여 다소 간단한 질문이 있습니다.g의 시계열 (ggplot2 포함)

데이터가 다음과 같이 구성되어 있습니다.

 Area 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 
    MIDWEST 10 6 13 14 12 8 10 10 6 9 

데이터가이 형식으로 구성된 경우 어떻게 시계열을 생성합니까? 그런 다음 원하는 플롯을 얻을 수있는 다음 코드를 실행

totmidc <- melt(totmidb, id="Area") 
totmidc 

    Area variable value 
1 MIDWEST  1998 10 
2 MIDWEST  1999  6 
3 MIDWEST  2000 13 
4 MIDWEST  2001 14 
5 MIDWEST  2002 12 
6 MIDWEST  2003  8 
7 MIDWEST  2004 10 
8 MIDWEST  2005 10 
9 MIDWEST  2006  6 
10 MIDWEST  2007  9 

:

reshape 패키지와 함께, 난 그냥 같이 할 데이터를 변경할 수 있습니다.

ggplot(totmidc, aes(Variable, Value)) + geom_line() + xlab("") + ylab("") 

그러나, 컬럼이 세를 표현하는 제 객체로부터 시계열 그래프를 생성 할 수있다.

답변

4

ggplot2에서 제공하는 오류는 무엇입니까? 다음은 내 컴퓨터에서 작동하는 것 같다 :

Area <- as.numeric(unlist(strsplit("1998 1999 2000 2001 2002 2003 2004 2005 2006 2007", "\\s+"))) 
MIDWEST <-as.numeric(unlist(strsplit("10 6 13 14 12 8 10 10 6 9", "\\s+"))) 

qplot(Area, MIDWEST, geom = "line") + xlab("") + ylab("") 

#Or in a dataframe 

df <- data.frame(Area, MIDWEST) 
qplot(Area, MIDWEST, data = df, geom = "line") + xlab("") + ylab("") 

또한 scale_date 등에 대한 자세한 내용은 ggplot2 웹 사이트를 체크 아웃 할 수 있습니다.

+0

한 덕분에 체이스. – ATMathew

3

"시간 계열 플롯"을 사용하면 꺾은 선형 차트 대신 가로형 막대 차트를 가져오고 싶습니까?

그런 경우 geom_bar()에 올바른 매개 변수를 전달하려면 코드를 약간만 수정해야합니다. geom_bar 기본 통계는 stat_bin이며, x- 스케일에서 카테고리의 빈도 카운트를 계산합니다. 데이터를 사용하여이 동작을 재정의하고 stat_identity를 사용하려고합니다.

library(ggplot2) 

# Recreate data 
totmidc <- data.frame(
     Area = rep("MIDWEST", 10), 
     variable = 1998:2007, 
     value = round(runif(10)*10+1) 
) 

# Line plot 
ggplot(totmidc, aes(variable, value)) + geom_line() + xlab("") + ylab("") 

# Bar plot 
# Note that the parameter stat="identity" passed to geom_bar() 
ggplot(totmidc, aes(x=variable, y=value)) + geom_bar(stat="identity") + xlab("") + ylab("") 

이 다음과 같은 막대 그래프를 생성합니다

enter image description here

+0

제안에 감사드립니다. 그러나 데이터 요소를 선으로 연결하려고했습니다. 여러 시점에서 데이터를 시각화하기 위해 막대 그래프를 사용하면 문제는 "과도한 양의 숯 잉크"가 발생할 수 있다는 것입니다 (Verzani, 2005, p.35) – ATMathew

+0

"과도한 양의 차트 잉크"를 읽어야합니다 ... 어떤 경우에도 문제가 해결되었습니다. – ATMathew