2013-11-19 3 views
0

У меня есть dataframe, который выглядит следующим образом:заливки Непрерывный масштаб и категоричная заливка вместе

>View(gaps) 

ID | MONTH  | MEAN | CATEGORY 
1 | 2012-01-01 | 20 | No Gap 
1 | 2012-02-01 | 30 | No Gap 
1 | 2012-03-01 | 5  | Gap 
2 | 2012-01-01 | 55 | No Gap 
2 | 2012-02-01 | 50 | No Gap 
2 | 2012-03-01 | 55 | No Gap 

Я хотел бы построить карту тепла, масштабируемую непрерывно с использованием среднего значения, и все же я хотел бы переопределить эту заливку везде значение CATEGORY - «Gap», что делает плитку простой, неизменной, монохромной красной.

Набор вверх будет что-то вроде этого:

>p <- ggplot(gaps, aes(x=MONTH, y=ID, fill = MEAN)) 
>p <- p + geom_tile() 
>p <- p + scale_fill_gradient(low="firebrick3", high="darkolivegreen2", space="Lab") 
>p 

Есть ли способ, чтобы затем отменить заливку для экземпляров «Gap»? Благодарю вас.

ответ

1

Если у вас нет каких-либо подлинных NA значения для беспокойства, вы можете установить соответствующие MEAN значения NA, а затем указать na.value в scale_fill_gradient:

ggplot(gaps, aes(x=MONTH, y=ID, fill = ifelse(CATEGORY=="Gap", NA, MEAN))) + 
    geom_tile() + 
    scale_fill_gradient(low="firebrick3", high="darkolivegreen2", 
         space="Lab", na.value="red") 
Смежные вопросы