2013-07-09 23 views
5

Mi piace molto il modo in cui il pacchetto pheatmap crea heatmap in R. molto interessanti. Tuttavia, sto cercando di aggiungere etichette di assi xey nell'output (se una fosse solo nella trama(), si dovrebbe usare: xlab = 'stuff'). Un semplice esempio è il seguente.etichette asse x e asse x in pheatmap in R

require(pheatmap) 

## Generate some data 
d <- matrix(rnorm(25), 5, 5) 
colnames(d) = paste("bip", 1:5, sep = "") 
rownames(d) = paste("blob", 1:5, sep = "") 

## Create the heatmap: 
pheatmap(d) 

Quanto sopra si ottengono i seguenti heatmap:

Example of the above

non posso per la vita di me capire come aggiungere un 'XLAB' o 'ylab' a questa trama. Pensieri?

+0

Strano, non vedo soluzioni. Ho anche provato a creare una trama multipla ... È anche impossibile aggiungere un testo sul grafico. Per quanto ne so, puoi semplicemente usare l'opzione principale come "falso xlab". – FraNut

risposta

4

Il problema principale qui è che pheatmap, che utilizza il pacchetto grid, crea una nuova pagina di griglia ogni volta che viene chiamato. La soluzione che ho trovato è:

library(pheatmap) 
library(grid) 

## Generate some data 
d <- matrix(rnorm(25), 5, 5) 
colnames(d) = paste("bip", 1:5, sep = "") 
rownames(d) = paste("blob", 1:5, sep = "") 

## Create the heatmap: 
setHook("grid.newpage", function() pushViewport(viewport(x=1,y=1,width=0.9, height=0.9, name="vp", just=c("right","top"))), action="prepend") 
pheatmap(d) 
setHook("grid.newpage", NULL, "replace") 
grid.text("xlabel example", y=-0.07, gp=gpar(fontsize=16)) 
grid.text("ylabel example", x=-0.07, rot=90, gp=gpar(fontsize=16)) 

enter image description here

+1

Qualche idea su come ottenere l'etichetta y sul lato destro della trama? –

+0

Modificare il valore per x in 'grid.text (" esempio ylabel ", x = -0.07, rot = 90, gp = gpar (fontsize = 16))' – DonJ