2011-09-14 3 views
2
dot plot

J'ai un data.frame avec des données d'expression génique et je veux créer un graphique en ggplot2. voici un exemple pour ma trame de données:tri axe de facteur de ggplot dans

Gene.Name cell.type expression 
ABC   heart  12 
AZF   heart  13 
ABC   kidney  1 
AZF   kidney  2 

et suivantes. en réalité, il y a 160 gènes, 5 types de tissus.
j'ai dessiné un dotplot avec le code suivant:

a <- ggplot(data, aes(x = expression, y = Gene.Name)) 
a + geom_point() + facet_grid(. ~ cell.type) 

Voici un aperçu de l'intrigue

http://i55.tinypic.com/2rgonjp.jpg

ce que je veux faire, mais ne peux pas sembler gérer est de commander les gènes alphabétiquement. J'ai essayé:

a <- ggplot(data, aes(x = expression, reorder(Gene.Name, Gene.Name))) 

mais cela ne fonctionne pas (la colonne Gene.Name est triée par ordre alphabétique, donc je pensais que cela pourrait changer l'ordre mais il n'a pas)

Des suggestions quant à la façon dont je pourrait changer l'ordre des noms de gènes?

Merci

+2

Au moment où les noms sont classés par ordre ... de bas en haut. Vous devez appliquer la fonction 'rev' aux noms si vous les voulez de haut en bas. (Et ce n'est pas un nuage de points.) –

+0

@DWin: fixe le type de tracé: scatterplot -> dotplot –

+0

@DWin: devrais-je utiliser la fonction de rev comme: 'a <- ggplot (données, aes (x = expression, y = rev (Gene.Name))) 'si c'est le cas, cela n'a rien changé. – AhmetZ

Répondre

1

a changé le nom de "dat" parce que "les données" est un mauvais chien. Utilisez rev pour inverser l'ordre des niveaux sur la variable facteur. Votre code a été un manque paren de clôture dans la première ligne et geom_point mal orthographié() dans la seconde:

dat$Gene.Name <- factor(dat$Gene.Name, levels= levels(rev(dat$Gene.Name)) 
a <- ggplot(dat, aes(x = expression, y = Gene.Name)) 
a + geom_point() + facet_grid(. ~ cell.type) 
+0

merci beaucoup DWin. Ça a marché! Donc, je comprends maintenant que ggplot commence à disposer le premier point de données (le gène qui commence par A dans mon cas) aussi proche de 0,0. Est-ce une vraie généralisation? – AhmetZ

+0

Peut-être vrai de votre code original avec des mises en garde. Cela pourrait dépendre de ce que vous voulez dire par [0,0]. Dans mon code, j'aurais dit que le positionnement du Gene.Names avait le "A" le plus proche [(min (expression), max (re-ordered-Gene-Names)], puisque je pense à [0,0] comme étant dans le coin inférieur gauche, et ggplot n'inclura probablement pas [0,0] généralement sauf si vous définissez des limites d'axe –

+0

oui, je veux dire [0,0] comme le coin inférieur gauche de la zone de traçage. retourner les coordonnées sur mon jeu de données d'origine, le gène qui commence par A est le plus proche de [0,0] J'essaie toujours d'apprendre ggplot2 donc il est bon de garder cela à l'esprit.Merci encore beaucoup! – AhmetZ

Questions connexes