Parcelle de chaque colonne, dans un bloc de données sous forme d'histogramme sur une page à l'aide de ggplot
Je voudrais tracer chaque colonne de données.cadre à l'aide d'un histogramme sur une seule page. Voici un exemple d'utilisation de l'exemple de "diamants" de la série de données qui vient avec R:
p = list()
for (i in 1:ncol(diamonds)) p[[i]] <- qplot(diamonds[,i], xlab=names(diamonds)[[i]])
do.call(grid.arrange, p)
Cela ne tracé de toutes les colonnes, mais les données semblent identiques dans chacun d'eux. Donc, clairement, quelque chose de mal.
Est-ce la bonne approche pour cette tâche? Je suis sûr que certains idiot de syntaxe quelque part, c'est l'attribution de la même colonne de l'ensemble de données pour chaque élément de la liste, mais je ne suis pas sûr de ce qu'il est.
Merci
- coupe, couleur et la clarté ne sont pas des variables numériques, ils sont des facteurs. Comment devraient-ils être tracée (depuis un histogramme a peu de sens dans ce cas)?
- Je vais la deuxième ce que joran a dit, mais si vous êtes ok avec ignorant des choses comme ça, vous voulez
melt
les données (reshape2
package) et puis l'intrigue avecfacet_wrap
- Il peut encore faire sens pour compter les éléments de chaque catégorie, mais c'est juste un exemple. Je suis tout à fait acceptable avec la suppression de ces colonnes en quelque sorte.
- Dans ce cas, il suffit de suivre @Justin conseils (peut-être qu'il va même l'écrire comme une réponse...)
- Vous ne savez pas comment utiliser fondre et facet_wrap pour cela. faire fondre semble permettre de choisir les colonnes de données.cadre, mais alors je ne suis pas sûr de savoir comment utiliser facet_wrap de les reporter.
Vous devez vous connecter pour publier un commentaire.
Ici, vous allez:
melt
ing nous permet d'utiliser le regroupement de variables (appelévariable
) pour diviser les données en groupes et de tracer un histogramme pour chaque un. Notez l'utilisation descales = "free_x"
parce que chacune des variables a une tout autre portée et l'échelle.ggplot(d,aes(x = value)) +geom_histogram() + facet_wrap(~variable,scales = "free_x", nrow=2)
ouggplot(d,aes(x = value)) +geom_histogram() + facet_wrap(~variable,scales = "free_x", ncol=4)
aes(y = ..ncount..)
à l'intérieur de lageom_histogram()
couche.