função image( ) - plotar valores selecionados

Boa tarde, alguém poderia me ajudar com a função image( )? Me desculpe por abusar do tempo de vocês, o texto abaixo é grande porém simples. Tenho uma matrix de valores com que estou fazendo um heatmap usando a função image( ). Gostaria de plotar não apenas os valores observados na matrix, mas também valores que seriam possíveis mas não são observados. Isso significa o seguinte: Tenho uma matrix 16x16. Valores possíveis, mas não observados, correspondem a "0" (zeros) onde a soma (índice da linha + índice da coluna) são iguais ou menores que 15. Exemplo: Se eu tenho um valor "0" na posição [14, 3], eu NÃO quero plotar, pois 14 + 3 = 17. Se eu tenho um valor "0" na posição [11, 3], eu quero plotar, pois 11 + 3 = 14. Eu queria que esses valores fossem plotados em cor diferente do meu heatmap, por exemplo, em azul. Matrix: x = c(3045, 893, 692, 830, 617, 155, 246, 657, 105, 60, 18, 7, 7, 4, 2, 11234, 2985, 2242, 2471, 1575, 366, 503, 1283, 170, 79, 32, 6, 4, 1, 3, 19475, 4756, 3233, 3251, 1810, 409, 575, 1210, 139, 41, 11, 4, 2, 0, 0, 20830, 4739, 2990, 2531, 1346, 298, 325, 612, 60, 17, 1, 0, 1, 0, 0, 15304, 3196, 1885, 1440, 610, 117, 115, 185, 14, 2, 0, 0, 0, 0, 0, 8026, 1535, 806, 539, 223, 33, 37, 39, 0, 0, 0, 0, 0, 0, 0, 3300, 562, 286, 141, 45, 14, 5, 12, 0, 0, 0, 0, 0, 0, 0, 1067, 160, 65, 40, 14, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 277, 47, 6, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 72, 6, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) xmat = matrix(x, ncol = 12) row15 = rep(0,16) col12 = rep(0,15) col13 = rep(0,15) col14 = rep(0,15) col15 = rep(0,15) xmat = cbind(xmat, col12, col13, col14, col15) xmat = rbind(xmat, row15) dimnames(xmat) = list(0:15, 0:15) xmat # minha matrix original é a primeira xmat (15x12), mas estou criando essa outra com linhas e colunas de zeros pois, por exemplo, 0 + 15 = 15, e preciso plotar esse valor também. Mas se alguém tiver solução mais simples... Desde já agradeço, Vitor Vitor Rezende da Costa Aguiar --------------------------------------------------- PhD candidate in biotechnology Rede Nordeste de Biotecnologia UFES, Brazil --------------------------------------------------- Current Adress: Department of Integrative Biology University of California, Berkeley 2033 Valley Life Sciences Building #4134 Berkeley, CA 94720 Phone: 1 (510) 473-2070

Só pra complementar, preciso usar a função image com log, assim: image(log(xmat)) Vitor On May 31, 2012, at 12:06 PM, Vitor Aguiar wrote:
Boa tarde,
alguém poderia me ajudar com a função image( )? Me desculpe por abusar do tempo de vocês, o texto abaixo é grande porém simples.
Tenho uma matrix de valores com que estou fazendo um heatmap usando a função image( ). Gostaria de plotar não apenas os valores observados na matrix, mas também valores que seriam possíveis mas não são observados.
Isso significa o seguinte: Tenho uma matrix 16x16. Valores possíveis, mas não observados, correspondem a "0" (zeros) onde a soma (índice da linha + índice da coluna) são iguais ou menores que 15.
Exemplo: Se eu tenho um valor "0" na posição [14, 3], eu NÃO quero plotar, pois 14 + 3 = 17. Se eu tenho um valor "0" na posição [11, 3], eu quero plotar, pois 11 + 3 = 14.
Eu queria que esses valores fossem plotados em cor diferente do meu heatmap, por exemplo, em azul.
Matrix: x = c(3045, 893, 692, 830, 617, 155, 246, 657, 105, 60, 18, 7, 7, 4, 2, 11234, 2985, 2242, 2471, 1575, 366, 503, 1283, 170, 79, 32, 6, 4, 1, 3, 19475, 4756, 3233, 3251, 1810, 409, 575, 1210, 139, 41, 11, 4, 2, 0, 0, 20830, 4739, 2990, 2531, 1346, 298, 325, 612, 60, 17, 1, 0, 1, 0, 0, 15304, 3196, 1885, 1440, 610, 117, 115, 185, 14, 2, 0, 0, 0, 0, 0, 8026, 1535, 806, 539, 223, 33, 37, 39, 0, 0, 0, 0, 0, 0, 0, 3300, 562, 286, 141, 45, 14, 5, 12, 0, 0, 0, 0, 0, 0, 0, 1067, 160, 65, 40, 14, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 277, 47, 6, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 72, 6, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
xmat = matrix(x, ncol = 12)
row15 = rep(0,16) col12 = rep(0,15) col13 = rep(0,15) col14 = rep(0,15) col15 = rep(0,15) xmat = cbind(xmat, col12, col13, col14, col15) xmat = rbind(xmat, row15) dimnames(xmat) = list(0:15, 0:15) xmat
# minha matrix original é a primeira xmat (15x12), mas estou criando essa outra com linhas e colunas de zeros pois, por exemplo, 0 + 15 = 15, e preciso plotar esse valor também. Mas se alguém tiver solução mais simples...
Desde já agradeço,
Vitor
Vitor Rezende da Costa Aguiar --------------------------------------------------- PhD candidate in biotechnology Rede Nordeste de Biotecnologia UFES, Brazil --------------------------------------------------- Current Adress: Department of Integrative Biology University of California, Berkeley 2033 Valley Life Sciences Building #4134 Berkeley, CA 94720 Phone: 1 (510) 473-2070
participantes (1)
-
Vitor Aguiar