2015-05-18 4 views
0

Я пытаюсь сделать карту нагрева нормализованных значений содержания чтения с помощью geom_tile в ggplot2 на основе кода примера here. Мой текущий код создает тепловую карту для желаемых диапазонов, но по какой-то причине только 4 из 7 диапазонов показаны в тепловой карте, и я не могу понять, в чем проблема. Когда я последовал примеру в исходной ссылке, он работал нормально, поэтому я, должно быть, что-то неправильно изменил в своем коде. Может ли кто-нибудь помочь мне определить ошибку в моем коде, которая вызывает это? Я хочу иметь следующую цветовую схему:Легенды не отображаются должным образом в heatmap с ggplot2

-Inf < value <= 0 -> white 
    0 < value <=1 -> yellow 
    1< value <=10 -> orange 
    10< value <= 100 -> darkorange2 
    100< value <= 1000 -> red 
    1000 <value <= 10000 -> red3 
    10000 < value <= 32000 -> red4 

Вот мой код:

#re-order the labels in the order of appearance in the data frame 
    df$label <- factor(df$X1, as.character(df$X1)) 
    # make the cuts 
    df$value1 <-cut(df$value,breaks=c(Inf,0,1,10,100,1000,10000,32000),right = T) 
    ggplot(data = df, aes(x = label, y = X2)) + geom_tile(aes(fill=value1), colour= "black") + scale_fill_manual(breaks=c("(-Inf,0]", "(0,1]", "(1,10]", "(10,100]", "(100,1000]", "(1000,10000]", "(10000,32000]"),values =c("white","yellow","orange","darkorange2","red","red3","red4")) 

здесь предварительный мои данные (фактические данные 228 строк отличая считываемые на миллион значений для 38 идентификаторов в 6 различных экспериментов):

head(df) 
       X1  X2  value        label  value1 
     1 merged_read_17785-997_aka_156_aka_21 RPM.MT1 91.783028 merged_read_17785-997_aka_156_aka_21 (10,100] 
     2 merged_read_133362-79_aka_156_aka_21 RPM.MT1 6.403467 merged_read_133362-79_aka_156_aka_21  (1,10] 
     3 merged_read_147828-69_aka_156_aka_20 RPM.MT1 4.268978 merged_read_147828-69_aka_156_aka_20  (1,10] 
     4 merged_read_162443-60_aka_156_aka_21 RPM.MT1 0.000000 merged_read_162443-60_aka_156_aka_21 (-Inf,0] 
     5 merged_read_262156-32_aka_156_aka_21 RPM.MT1 5.691971 merged_read_262156-32_aka_156_aka_21  (1,10] 
     6 merged_read_22905-759_aka_159_aka_21 RPM.MT1 140.164780 merged_read_22905-759_aka_159_aka_21 (100,1e+03] 

А вот сюжет, который я получаю от приведенных выше данных: heatmap

ответ

0

Я думаю, что я понял это, если я вынимаю Разрывы аргумент от scale_fill_manual то все легенды показаны:

ggplot(data = df, aes(x = label, y = X2)) + geom_tile(aes(fill=value1), colour= "black") + scale_fill_manual(values =c("white","yellow","orange","darkorange2","red","red3","red4")) 
Смежные вопросы