pheatmap: Farbe für NA

8

Verwenden von R-Paket pheatmap, um Heatmaps zu zeichnen. Gibt es eine Möglichkeit, NAs in der Eingabematrix eine Farbe zuzuweisen? Es scheint, dass NA standardmäßig weiß angezeigt wird. Zum Beispiel:

%Vor%

Danke

    
dariober 19.09.2014, 08:52
quelle

4 Antworten

10

Es ist möglich, erfordert aber etwas Hacking.

Sehen wir uns zuerst an, wie pheatmap eine Heatmap zeichnet. Sie können dies überprüfen, indem Sie pheatmap in die Konsole eingeben und durch die Ausgabe scrollen oder alternativ edit(pheatmap) verwenden.

Sie werden feststellen, dass Farben mit

abgebildet werden %Vor%

Die Funktion scale_colours scheint eine interne Funktion des Pakets pheatmap zu sein, aber wir können den Quellcode mit

überprüfen %Vor%

Was gibt

%Vor%

Jetzt müssen wir scale_vec_colours überprüfen, das stellt sich heraus:

%Vor%

Im Wesentlichen verwendet pheatmap cut , um zu entscheiden, welche Farben verwendet werden sollen.

Lassen Sie uns versuchen, was cut macht, wenn es NAs gibt:

%Vor%

Es gibt NA zurück! Also, hier ist dein Problem!

Nun, wie kommen wir damit klar? Am einfachsten ist es, pheatmap die Heatmap zeichnen zu lassen und dann die NA-Werte so zu überlagern, wie wir möchten.

Wenn Sie noch einmal auf die pheatmap -Funktion schauen, sehen Sie, dass sie das grid -Paket zum Plotten benutzt (siehe auch diese Frage: R - Wie füge ich pheatmap Linien und Text hinzu? )

Sie können also grid.rect verwenden, um den NA-Positionen Rechtecke hinzuzufügen. Was ich tun würde ist, die Koordinaten der Heatmap-Grenze durch Versuch und Irrtum zu finden, und dann von dort aus die Rechtecke zu zeichnen.

Zum Beispiel:

%Vor%

Eine bessere Lösung wäre, den Code von pheatmap mit der Funktion edit zu hacken und ihn mit NAs zu behandeln, wie Sie es wünschen ...

    
nico 19.09.2014 10:26
quelle
3

Sie können die Zuweisung einer Farbe aktivieren, indem Sie die Entwicklerversion von pheatmap von github verwenden. Sie können dies mit Devtools tun:

%Vor%

Jetzt können Sie den Parameter "na_col" in der Funktion pheatmap verwenden:

%Vor%

(bearbeiten) Vergiss nicht, es danach zu laden. Sobald es installiert ist, können Sie es wie jedes andere installierte Paket behandeln.

    
Markus 16.04.2017 14:03
quelle
1

Wenn es Ihnen nichts ausmacht, stattdessen heatmap.2 von gplots zu verwenden, gibt es ein praktisches Argument na.color . Nehmen Sie die Beispieldaten m von oben:

%Vor%     
Joe 23.01.2017 11:07
quelle
0

Wenn Sie wollen, dass die NAs grau sind, können Sie einfach "NA" als doppelt erzwingen.

%Vor%     
Ashley 11.07.2017 22:33
quelle

Tags und Links