R Normaliser ensuite tracer les deux histogrammes ensemble dans la R
Je me rends compte il y a eu plusieurs messages de personnes me demandant comment tracer les deux histogrammes ensemble, côte à côte (comme dans un complot avec les bars à côté de l'autre) et se superposer dans R et aussi sur la façon de normaliser les données. En suivant les conseils que j'ai trouvé, je suis capable de faire l'un ou l'autre, mais pas les deux opérations.
Voici la configuration.
J'ai deux trames de données de différentes longueurs et pour tracer le volume des objets dans chaque df sous forme d'histogramme. Par exemple combien de personnes dans le bloc de données 1 sont entre .1-.2 um^3 et de la comparer avec la façon dont beaucoup dans le bloc de données 2 sont entre .1 et .2 um^3 et ainsi de suite. Superposés ou côte à Côte serait super pour ce faire.
Puisqu'il y a plus de mesures dans un bloc de données que les autres, évidemment j'ai normaliser, donc j'utilise:
read.csv(ctl)
read.csv(exp)
h1=hist(ctl$Volume....)
h2=hist(exp$Volume....
#to normalize#
h1$density=h1$counts/sum(h1$counts)*100
plot(h1,freq=FALSE....)
h2$density=h2$counts/sum(h2$counts)*100
plot(h2,freq=FALSE....)
Maintenant, j'ai réussi la superposition de l'onu, des données normalisées à l'aide de cette méthode: http://www.r-bloggers.com/overlapping-histogram-in-r/ et aussi avec cette méthode: le traçage de deux histogrammes ensemble
mais je suis coincé quand il s'agit de la façon de superposition des données normalisées
- Qu'entendez-vous par "side by side"? Deux parcelles différentes, les uns à côté des autres (par(mfrow=c(1,2)) ou une parcelle de terrain avec 2 bars différents uns à côté des autres?
- Une parcelle de terrain avec deux bars différents, désolé d'être floues.
- Je ne sais pas ce qu' $Volume et je suppose est le vecteur de ce que vous voulez normaliser. C'est très janky, mais faire un nouveau vecteur dans votre bloc de données où ctl$densité <- ctl$ / Volume max(ctl$Volume). Maintenant, faites un histogramme à partir de cette h1 <- hist(ctl$densité . Faire de même pour l'autre ensemble de données et de suivre les instructions sur le site web que vous avez posté
Vous devez vous connecter pour publier un commentaire.
ggplot2
rend relativement facile à tracer forme d'histogrammes normalisés de groupes de taille inégale. Voici un exemple avec des données fausses:Si vous voulez faire de la superposition de la densité des parcelles, vous pouvez le faire aussi bien.
adjust
contrôle de la bande passante. C'est déjà normalisé par défaut.Mise à JOUR: En réponse à votre commentaire, le code suivant devrait le faire.
(..density..)/sum(..density..)
résultats dans le total de la densité sur les deux histogrammes en ajoutant jusqu'à un, et la densité totale de chaque groupe en ajoutant jusqu'à 0.5. Donc, vous devez multiplier par 2 pour que la densité totale de chaque groupe individuellement normalisé à 1. En général, vous devez multiplier parn
, oùn
est le nombre de groupes. Ce qui semble sorte de encombrants et il y a peut être un plus élégant approche.