Imaginez que j'ai deux vecteurs chacune de la longueur différente. Je veux générer un graphique avec la densité des deux vecteurs superposés. Ce que je pensais devoir faire, c'est ceci: alors je pensais que je devrais faire cela: p> Basé sur une autre solution que j'ai trouvée dans Stackoverflow 1 2 , j'ai réalisé que je devrais Essayez ceci: p> OK, j'ai résolu mon problème d'origine. Mais y a-t-il un moyen de faire quelque chose de ressemblant au premier que j'ai essayé ci-dessus? De la façon dont les choses sont libellées dans la documentation code> ggplot code>, je l'aurais pensé. Appréciez toute suggestion. P> p>
3 Réponses :
Tout fonctionnera bien si vous déplacez l'affectation du paramètre code> couleur code> de AES () code>.
vec1 <- data.frame(x=rnorm(2000, 0, 1))
vec2 <- data.frame(x=rnorm(3000, 1, 1.5))
library(ggplot2)
ggplot() + geom_density(aes(x=x), colour="red", data=vec1) +
geom_density(aes(x=x), colour="blue", data=vec2)
Et c'était la «petite» truc de twiggly qui me trompait. Tous les exemples que j'ai trouvés ont montré code> couleur code> dans aes () code>. Merci, cela peut être utile lorsque j'ai vraiment gros vecteurs gros b> Je ne veux pas vraiment concaténer dans un seul cadre de données.
J'ai eu des problèmes avec la solution ci-dessus, car mes données étaient contenues dans un seul cadre de données. Utilisation de là-bas, pour superposer différentes colonnes contenues dans la même trame de données, je suggérerais: p> Pour la plupart des gens, cela pourrait sembler évident, mais pour moi comme débutant, ce n'était pas le cas.
J'espère que cela aide. P> p> ... code>
data = df $ A code> dans l'esthétique ne fonctionne pas car cela fournira ggplot avec un vecteur de classe "numérique", qui n'est pas pris en charge.
Vous pouvez probablement ajouter
échelle_colour_manual (valeurs = C ('bleu', 'rouge')) code> à votre première tentative, mais votre dernière tentative est probablement la voie la plus acceptée.
Hmmm et non. cela ne fonctionne pas non plus.
Vous devrez être plus précis, car cela fonctionne très bien pour moi.
Utilisation: GGPLOT () + Geom_density (AES (x = x, couleur = "rouge"), données = Vec1) + geom_density (AES (x = x, couleur = "bleu"), données = Vec2) + échelle_colour_manual (valeurs = C ('rouge', 'bleu')) Oui, cela change les couleurs. Mais cela attribue la mauvaise couleur à la mauvaise distribution. Au moins pour moi, le 0 dist Centré. est bleu, et le plus large dist. W Moyenne de 1 est rouge, quand je demande le contraire.
Euh ... alors activez-les dans les deux
geom_density code> les appels pour les inverser? Je me rends compte que c'est à l'envers et à tout, mais votre première tentative n'est tout simplement pas la manière dont la logique des légendes fonctionne dans GGPLOT. Vous n'édorciez pas d'étiquettes de couleur aux choses de la Geom. C'est juste pas comment c'est fait.