12
votes

Comment tracer des données groupées par un facteur, mais pas comme un boxplot

in r, donné un vecteur xxx

et un facteur: xxx

Je veux créer une parcelle où les points de données sont groupés comme défini par le facteur. De sorte que les catégories doivent être sur l'axe des x, les valeurs de la même catégorie doivent avoir la même coordonnée x.

simplement faire tracé (trans.factor, CASP6) fait presque quoi Je veux, cela produit un boxplot, mais je veux voir les points de données individuels.


4 commentaires

Êtes-vous attaché à l'intrigue? Je sais que c'est possible en utilisant ggplot2.


Pas du tout. Dans quel paquet est ggplot2?


Comme Jonathan a répondu, GGPLot2 vous permettra de faire cela, plus vous laisser gêner les points de sorte que deux points se chevauchent les uns des autres s'ils ont la même valeur y. Découvrez le site web de Hadley HAD.CO.NZ/GGPLOT2


Merci pour le lien, c'est vraiment utile.


7 Réponses :


14
votes
require(ggplot2)
qplot(trans.factor, casp6)

0 commentaires

4
votes

Vous pouvez le faire avec ggplot2 code>, en utilisant facettes code>. Lorsque je lis ", je veux créer un complot où les points de données sont regroupés tels que définis par le facteur" em>, la première chose qui me suis venu à mon esprit était facettes code>.

Mais dans ce cas particulier, une alternative plus rapide devrait être la suivante: p> xxx pré>

et vous pouvez lire avec les options de tracé ( type code>, fg , BG CODE> ...), mais je vous recommande de coller avec ggplot2 code>, puisqu'il a beaucoup de code nettoyant, de grandes fonctionnalités, vous pouvez éviter de surcharger ... etc. c. p>

Découvrez comment faire face à des facteurs. Vous avez la barlette lors de l'évaluation de tracé (trans.Factor, CASP6) code> "Cause trans.factor code> était la classe de facteur code> (ironiquement, vous l'avez même nommé dans un tel manoir) ... et trans.factor code>, comme tel, a été déclaré avant forte> une variable continue (numérique) dans tracé () code> fonction ... Par conséquent Terrain () Code> "Sent" La nécessité de sous-ensemble Data et de dessiner BoîtePlot en fonction de chaque pièce (si vous déclarez une variable continue en premier, vous obtiendrez un graphique ordinaire, non?). ggplot2 code>, d'autre part, interprète facteur d'une manière différente ... comme "un ordinaire" em>, variable numérique (ceci signifie la syntaxe fournie par Jonathan Chang em>, vous devez spécifier geom code> lorsque vous faites quelque chose de plus complexe dans ggplot2 code>). p>

mais, présuppose que vous avez une variable continue et Facteur, et vous souhaitez appliquer l'histogramme sur chaque partie de variable continue, définie par des niveaux de facteur. C'est là que les choses deviennent compliquées avec les capacités de graphique de base. P> xxx pré>

à l'aide de graphiques de base ( package: graphiques code>): p>

qplot(x, log(x), facets = . ~ g)


0 commentaires

3
votes

Vous pourrez peut-être vous rapprocher de ce que vous voulez utiliser des graphiques de réseau en faisant: xxx


0 commentaires

3
votes

Je pense qu'il y a une meilleure solution (je l'ai écrit pour un atelier il y a quelques jours), mais cela a glissé mon esprit. Voici un substitut moche avec des graphiques de base. N'hésitez pas à annoter l'axe X ad libitum em>. Personnellement, j'aime la solution de Greg.

plot(0, 0, xlim = c(1, 4), ylim = range(casp6), type = "n")
points(casp6 ~ trans.factor)


0 commentaires

4
votes

Je trouve la solution suivante: xxx

simple et direct.

(Reportez-vous par exemple à http://www.mail-archive.com/r-help@r-project.org/msg34176.html )


0 commentaires

3
votes

aucun paquet supplémentaire nécessaire

Je suis un peu en retard à la fête, mais j'ai constaté que vous pouvez obtenir le résultat souhaité très facilement avec la fonction de parcelle standard - convertir simplement le facteur à une valeur numérique: xxx


0 commentaires

1
votes

Question de 10 ans ... mais si vous voulez une solution de base Neat R:

plot(trans.factor, casp6, border=NA, outline=FALSE)
points(trans.factor, casp6)


0 commentaires