heatmap ggplot2: come preservare l'ordine etichetta?
Domanda
Sto cercando di trama heatmap in ggplot2 utilizzando i dati CSV seguente soluzione di casbon in
il problema è x-label prova per riordinare stessa. Per esempio, se sostituisco COG0002 etichetta e COG0001 fatto che i dati di esempio, l'x-label ancora uscire in ordinamento (cog0001, cog0002, cog0003 .... cog0008).
Esiste un modo per evitare questo? Voglio che essere ordinati come in file CSV
grazie
pp
Soluzione
Se si desidera mantenere l'ordine direttamente dal file CSV:
foomelt$COG <- factor(foomelt$COG, levels = as.character(foo[[1]]))
Altri suggerimenti
Se non ricordo male, quando si chiama fattore (x) con l'argomento livelli predefiniti, i livelli sono impostati i livelli = sort (unica (x)).
È possibile ignorare questa azione da livelli di impostazione = unico (x).
Ad esempio:
set.seed(1)
x = sample(letters, 100, replace = TRUE)
head(x, 5)
[1] "g" "j" "o" "x" "f"
levels(factor(x))
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o " "P" "q" "r" "s"
[20] "t" "u" "v" "w" "x" "y" "z"
levels(factor(x, levels = unique(x)))
[1] "g" "j" "o" "x" "f" "y" "r" "q" "b" "e" "u" "m" "s" "z" "d " "k" "a" "w" "i"
[20] "p" "v" "c" "n" "t" "l" "h"
Si può vedere che i livelli di impostazione = unico (x) preserva l'ordine di accadimento nei dati.
Hai provato riordino livelli di fattore prima di tracciare? per es.
foomelt$COG = factor(foomelt$COG,levels(foomelt$COG)[c(2,1,3:8)])
(non riesco a Provalo ora, quindi non posso essere sicuro che funziona)