J'essaie actuellement de mettre en place une carte thermique d'une matrice et de mettre en évidence des cellules spécifiques, sur la base de deux autres matrices.Mettre en surbrillance des cellules dans heatmap
Un exemple:
> SOI
NAP_G021 NAP_G033 NAP_G039 NAP_G120 NAP_G122
2315101 59.69418 27.26002 69.94698 35.22521 38.63995
2315102 104.15294 76.70379 114.72999 97.35930 79.46014
2315104 164.32822 61.83898 140.99388 63.25482 105.48041
2315105 32.15792 21.03730 26.89965 36.25943 40.46321
2315103 74.67434 82.49875 133.89709 93.17211 35.53019
> above150
NAP_G021 NAP_G033 NAP_G039 NAP_G120 NAP_G122
2315101 0 0 0 0 0
2315102 0 0 0 0 0
2315104 1 0 0 0 0
2315105 0 0 0 0 0
2315103 0 0 0 0 0
> below30
NAP_G021 NAP_G033 NAP_G039 NAP_G120 NAP_G122
2315101 0 1 0 0 0
2315102 0 0 0 0 0
2315104 0 0 0 0 0
2315105 0 1 1 0 0
2315103 0 0 0 0 0
Maintenant, je crée un heatmap normal:
heatmap(t(SOI), Rowv = NA, Colv = NA)
Maintenant ce que je veux faire est de mettre en évidence les cellules, qui ont un 1 above150
avec un cadre d'un couleur (par exemple bleu), tandis que les cellules avec un below30
1 devraient obtenir un cadre rouge. Toutes les matrices sont de taille égale car elles sont liées. Je sais que je peux ajouter des choses à la heatmap après le traitement via add.expr, mais jusqu'à présent, j'ai juste réussi à créer des ablines complètes qui couvrent l'ensemble du heatmap => pas ce que je cherche.
Si quelqu'un a des suggestions, je serais ravi.
+1 réponse de Nice, avec le code transparent propre. –
thx. J'attends juste que ce novice ait le frisson de la première tique ... – Spacedman
Excellente solution, exactement ce que je cherchais, merci beaucoup :) – bontus