2017-02-28 34 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

相關問題