Question

Je suis en train de complot heatmap à l'aide de données ggplot2 csv suivant la solution de casbon dans

http://biostar.stackexchange.com/questions/921/how-to-draw-a-csv-data-file-as-a-heatmap-using-numpy-and-matplotlib

le problème est d'essayer x-label pour trier à nouveau lui-même. Par exemple, si j'échange étiquette COG0002 et COG0001 dans cet exemple des données, le x-label viennent toujours en ordre de tri (cog0001, cog0002, cog0003 .... cog0008).

Y at-il de toute façon pour empêcher cela? Je veux qu'il soit commandé comme fichier csv

Merci

p

Était-ce utile?

La solution

Si vous voulez garder l'ordre directement à partir du fichier csv:

foomelt$COG <- factor(foomelt$COG, levels = as.character(foo[[1]]))

Autres conseils

Si je me souviens, lorsque le facteur appelant (x) avec l'argument de niveaux par défaut, les niveaux sont définis comme levels = sort (unique (x)).

Vous pouvez remplacer cette action en fixant des niveaux = uniques (x).

Par exemple:

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"

Vous pouvez voir que les niveaux de réglage = uniques (x) préserve l'ordre d'apparition dans les données.

Avez-vous essayé réordonnancement niveaux de facteur avant de tracer? par exemple.

foomelt$COG = factor(foomelt$COG,levels(foomelt$COG)[c(2,1,3:8)])

(je ne peux pas l'essayer en ce moment, donc je ne peux pas être sûr que cela fonctionne)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top