2017-02-28 32 views
2

我DF:ggTimeSeries手动连续颜色

prod 
# A tibble: 695 × 3 
    REPORT_DATE UNIT PROD 
     <date> <chr> <dbl> 
1 2015-03-28 DEP11 2.043962 
2 2015-03-29 DEP11 2.788490 
3 2015-03-30 DEP11 2.795274 
4 2015-03-31 DEP11 3.100589 
5 2015-04-01 DEP11 2.882843 
6 2015-04-02 DEP11 2.987861 
7 2015-04-03 DEP11 3.123047 
8 2015-04-04 DEP11 3.264180 
9 2015-04-05 DEP11 2.987729 
10 2015-04-06 DEP11 3.222573 
# ... with 685 more rows 

我创建了如下一个ggTimeSeries情节: enter image description here

我要更改配色方案......并希望将颜色分为3类:

  1. 低于3.0 =红色
  2. 3.0 - 3.2 =琥珀
  3. 比3.2更高=绿色

我曾尝试以下:

ggplot_calendar_heatmap(
    prod, 
    'REPORT_DATE', 
    'PROD' 
) + 
    xlab('') + 
    ylab('') + 
    scale_fill_continuous(low = 'red', high = 'green') + 
    facet_wrap(~Year, ncol = 1) 

还试图用scale_colour_gradientnscale_colour_manuel但没有运气...任何想法?

回答

2

像这样的东西应该工作:

set.seed(1) 
# generate some random data 
prod <- data.frame(REPORT_DATE=seq.Date(as.Date('2015/01/03'), as.Date('2017/02/28'), by='day')) 
prod$PROD <- runif(nrow(prod), 0, 5) 
prod <- transform(prod, PROD.cut=cut(PROD, breaks=c(-Inf,3, 3.2,Inf)))   # bin data 
library(ggTimeSeries) 
ggplot_calendar_heatmap(
    prod, 
    'REPORT_DATE', 
    'PROD.cut' 
) + 
    xlab('') + 
    ylab('') + 
    scale_fill_manual(values = c("red", "orange", "green")) + 
    #scale_fill_continuous(low = 'red', high = 'green') + 
    facet_wrap(~Year, ncol = 1) 

enter image description here

+1

谢谢......这是正是我需要的! – Shery

相关问题