2014-02-07 13 views
6

Ich versuche, eine Heatmap mit heatmap.2 zu machen, aber ich bekomme keine Zellgrenze. Wenn ich den Parameter sepwidth und sepcolor nicht funktioniert, muss ich die colsep und rowsep Parameter einfügen, aber immer noch das, einige Zellgrenzen sind nicht gezeichnet, irgendwelche Ideen?Zeichne Zellgrenzen mit heatmap.2

heatmap.2(as.matrix(df), key=F, trace="none", ColSideColors=colorside, 
         cexRow=0.6, breaks=bk1, col=colors2, 
         lmat=rbind(c(0,0), c(0,4), c(0,1), c(3,2), c(0,0)), 
         lhei=c(0.4,0.3,0.05,0.4,0.6), 
         sepwidth=c(0.01, 0.01), sepcolor="black", 
         colsep=1:length(df), rowsep=1:length(df)) 

Antwort

19

Es scheint, Ihr Problem mit den colsep und rowsep Argumente ist. Von der Hilfe-Datei:

colsep, rowsep, sepcolor (optional) Vektor von ganzen Zahlen angibt die Spalten oder Zeilen sollten sich von den vorhergehenden Spalten oder Reihen durch einen engen Raum der Farbe sepcolor

Statt "getrennt werden Geben Sie an, welche Spalten oder Zeilen getrennt werden sollen ", Ihr Code erstellt einen Vektor so lang wie die Anzahl der Elemente in der Matrix. Wenn Sie colsep=c(1,3) eingestellt hätten, wären der Separator zwischen der 1. und 2. Spalte und der Separator zwischen der 3. und 4. Spalte eingefärbt worden. Ich glaube nicht, dass es eine Möglichkeit gibt, die Zellgrenzen zu färben, ohne die Argumente colsep und rowsep zu verwenden. Die Zellenrahmen werden standardmäßig nicht gezeichnet, es sei denn, diese Argumente erhalten Werte.

# First, a reproducible data set 
library(gplots) 
mat = matrix(rnorm(100), ncol=5) 
colorside = gray(1:5/5) 
bk1 = seq(min(mat),max(mat),length.out=11) 
col = redgreen(10) 

# And now the heatmap 
heatmap.2(mat, 
      key=FALSE, 
      trace="none", 
      ColSideColors=colorside, 
      cexRow=0.6, 
      breaks=bk1, 
      col=col, 
      sepwidth=c(0.1,0.1), 
      sepcolor="purple", 
      colsep=1:ncol(mat), 
      rowsep=1:nrow(mat)) 

enter image description here

+0

Sieht aus wie es eine Grenze für die sepwidth Schlüsselwort so wie ich es nicht sehr klein machen kann. – fred

-3

gesetzt heatmap.2 (as.matrix (df), key = F, trace = "beide" ...