3 Stimmen

Heatmap-Farbschlüssel mit fünf verschiedenen Farben

Ich habe den folgenden Code und bin mir nicht sicher, wie ich ihn verwenden kann, um eine Heatmap mit einem Farbschlüssel anzuzeigen, der fünf verschiedene Farben anzeigt, die bestimmte Werte darstellen:

hm <- heatmap.2(data_matrix, scale="none",Rowv=NA,Colv=NA,col = rev(brewer.pal(11,"RdBu")),margins=c(5,5),cexRow=0.5, cexCol=1.0,key=TRUE,keysize=1.5, trace="none")

Farbschlüssel erforderlich:

<0.3 (blue)

0.3-1 (green)

1-1.3 (yellow)

1.3-3.0 (orange)

>3.0 (red)

Ich würde mich freuen, wenn mir jemand helfen kann. Danke!

James

8voto

Gregor Thomas Punkte 118862
require(gplots)
require(RColorBrewer)

## Some fake data for you
data_matrix <- matrix(runif(100, 0, 3.5), 10, 10)

## The colors you specified.
myCol <- c("blue", "green", "yellow", "orange", "red")
## Defining breaks for the color scale
myBreaks <- c(0, .3, 1, 1.3, 3, 3.5)

hm <- heatmap.2(data_matrix, scale="none", Rowv=NA, Colv=NA,
                col = myCol, ## using your colors
                breaks = myBreaks, ## using your breaks
                dendrogram = "none",  ## to suppress warnings
                margins=c(5,5), cexRow=0.5, cexCol=1.0, key=TRUE, keysize=1.5,
                trace="none")

Das sollte funktionieren und gibt Ihnen einige Ideen, wie Sie es weiter bearbeiten können, wenn Sie möchten. Um die Legende mit Ihren exakten Werten zu erhalten, würde ich mich nicht mit dem eingebauten Histogramm abmühen und stattdessen einfach Folgendes verwenden legend :

hm <- heatmap.2(data_matrix, scale="none", Rowv=NA, Colv=NA,
                col = myCol, ## using your colors
                breaks = myBreaks, ## using your breaks
                dendrogram = "none",  ## to suppress warnings
                margins=c(5,5), cexRow=0.5, cexCol=1.0, key=FALSE,
                trace="none")
legend("left", fill = myCol,
    legend = c("0 to .3", "0.3 to 1", "1 to 1.3", "1.3 to 3", ">3"))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X