2011-02-17 4 views
2

아래 예에서보다 최근의 점이 더 어두운 음영 (또는 교대로 덜 투명 함)으로 표시하고 싶습니다.날짜 기반의 색상 그라디언트를 ggplot2 scatter plot에 어떻게 적용 할 수 있습니까?

data <- data.frame(x=c(1,2,3,4,5,6,7,8,9,10,11,12), 
    y=c(1,2,3,4,5,6,7,8,9,10,11,12), 
    dt=c("2010-12-31","2010-11-30","2010-10-29","2010-09-30", 
     "2010-08-31","2010-07-30","2010-06-30","2010-05-31","2010-04-30", 
     "2010-03-31","2010-02-26","2010-01-29")) 
p <- ggplot(data, aes(x,y,color=dt)) + geom_point() + 
    scale_colour_gradient(limits=c("2010-01-29","2010-12_31"), 
     low="white", high="blue") 
print(p) 
+0

@user - @koshke는 그의 대답에, 당신의 문제는'dt' 필드가 날짜/시간 필드되지 않는 관련이 말한대로. 'str (data)'를 검사하여 이것이 중요한 요소인지 확인하십시오. ggplot 호출 내에서 또는 사전 처리 단계에서 변환할지 여부는 귀하에게 달려 있지만, 올바른 경로로 이동해야합니다. – Chase

답변

5

dt는 변수 변수이며, 아마도 scale _ * _ gradient는 이산 변수로 사용할 수 없습니다.

dt를 Date로 변환 한 다음 연속 변수 인 정수로 변환 할 수 있습니다. 여기

은 예입니다

ggplot(data, aes(x,y, colour=as.integer(as.Date(data$dt)))) + 
    geom_point() + 
    scale_colour_gradient(limits=as.integer(as.Date(c("2010-01-29","2010-12-31"))), 
         low="white", high="blue") + 
    opts(legend.position="none") 
+0

이것은 훌륭하게 작동합니다. – user338714

+0

이것은 훌륭하지만 범례가 생성 될 때 적절한 날짜 라벨을 덤프합니다. 눈금 색상을 유지하고 레이블을 유지하는 방법에 대한 제안? – d8aninja

관련 문제