2016-11-23 3 views
2

Мои данные выглядит следующим образом:Heatmap с использованием ggplot2 в г

data1 <- read.table(text = "District Block IE  FE  AOE  CLE  CS 
A    A1 4.87 17.54 13.85 9.01 45.27 
       B    B1 8.19 20.83 14.59 7.04 50.65 
       C    C1 8.71 19.16 16.54 8.24 52.65 
       D    D1 2.43 11.77 11.51 6.96 32.67 
       E    E1 6.85 13.54 14.54 5.7  40.63 
       F    F1 7.02 19.96 13.96 3.82 44.76 
       G    G1 2.55 11.64 8.74 5.06 27.99 
       H    H1 9.81 20.2 12.62 5.95 48.58 
       I    I1 6.56 15.49 12.32 8.08 42.45 
       J    J1 9.47 22.86 25  22.73 80.06 
       K    K1 10.2 20.18 20.14 20.06 70.58 
       L    L1 9.52 14.86 16.95 18.23 59.56", header = TRUE) 

Я создал матрицу данных из исходного кода dataframe.My выглядит следующим образом

row.names(data1)<-data1$Column1 

data1<-select(data1,-c(1)) 
data1<-data.matrix() 
data1_heatmap<-heatmap(data1,Rowv = NA,Colv = NA,col=heat.colors(256),scale = "none",margins = c(12,3)) 

Всякий раз, когда я использую приведенный выше код , он отображает весь лист.

У меня 2 вопроса:

  1. Мне нужно показать значение ячеек, которые присутствуют в матрице данных.

  2. Также мне нужно указать диапазон цветов в каждом столбце от IE до CS.Например, в столбце IE меньше 4.87 - красный, от 6,66 до 6,85 - оранжевый и зеленый для более 8,17. В основном пользовательский диапазон для каждого столбца.

+1

Что это нужно делать с 'ggplot2'? – Axeman

ответ

0

Попробуйте это ggplot2 (начиная с оригинального data1):

library(ggplot2) 
library(reshape2) 
row.names(data1)<-data1$Column1 
data1<-select(data1,-c(1)) 
data1 <- melt(data1, id='Block') 
data1$value <- cut(data1$value,breaks = c(-Inf,4.87, 6.56, 6.58, 8.17, 14, 19, 21, Inf),right = FALSE) # bin IE variable 
ggplot(data = data1, aes(x = Block, y = variable)) + 
    geom_tile(aes(fill = value), colour = "white") + 
    scale_fill_brewer(palette = "PRGn") 

enter image description here

Смежные вопросы