Bilan des caractéristiques de lots : densités de taille des aloses en migration
Retour à Recette StacomiR Dernière mise à jour décembre 2012 adaptation stacomir v0.4.1
- Lancez un Bilan -> Parm. de Lot .
- Je choisis de faire un bilan de la taille des aloses en vidéo comptage.
- Dans le menu déroulant apparaissent l'ensemble des taxons existant sur le dispositif (quel que soit la date), puis les stades de ce taxon, et les caractéristiques existant pour ce taxon. Ces onglets permettent de vérifier que vous n'avez pas rentré de stades incohérents (ex : à la fois géniteur et indéterminé alors que vous n'avez que des géniteurs).
- Cliquez sur un des boutons graphiques, par exemple dotplot.
- Les exemples de traitement sont disponibles à l'adresse suivante http://docs.ggplot2.org).
- Vous pouvez cliquer sur >utilitaire>newgraph pour faire apparaitre le graphique dans une nouvelle fenêtre graphique.
# voici ci dessous les codes ayant conduit à produire les graphiques proposés : density g<-ggplot(bilan_lot@data,aes(x=val_quant)) g<-g+stat_density(aes(ymax = ..density.., ymin = -..density..), fill = "grey50", colour = "grey10", geom = "ribbon", position = "identity") + facet_grid(. ~ annee) + coord_flip() print(g) assign("g",g,envir_stacomi) # points g<-ggplot(bilan_lot@data) g<-g+geom_point(aes(x=date,y=val_quant)) print(g) # boxplot par quinzaine g<-ggplot(bilan_lot@data) g<-g+geom_boxplot(aes(x=quinzaine,y=val_quant)) print(g)
Evidemment les possibilités de ces graphiques sont assez limitées, essayons de produire quelques exemples de graphiques
densityplot
#Il est nécessaire de lancer un premier graphique pour charger et traiter les données # l'objet bilan_lot est "rangé" dans une zone particulière, bilan_lot<-get("bilan_lot",envir_stacomi) # les données résultant du calcul sont rangées dans le slot data, on y accède en écrivant bilan_lot@data g<-ggplot(bilan_lot@data) # ci dessous on écrit une densité en fonction des années, position 'stack' correspond à empiler les données des différentes années g+stat_density(aes(x=val_quant,fill=annee),position='stack')
- Ajoutons un titre et des légendes (attention requiert ggplot version 0.9.3) :
bilan_lot<-get("bilan_lot",envir_stacomi) g<-ggplot(bilan_lot@data) g+stat_density(aes(x=val_quant,fill=annee),position='stack')+ ggtitle("Structure en taille des Aloses")+ xlab("Tailles (mm)")+ ylab("Densite")+ annotate("text",x = 300, y = 0.07, label = "essai == 1", parse = T, vjust = 0, hjust = 0)
- essai =2
display.brewer.all() # affiche les palettes disponibles
bilan_lot<-get("bilan_lot",envir_stacomi) g<-ggplot(bilan_lot@data) g+stat_density(aes(x=val_quant,fill=annee),position='stack')+ ggtitle("Structure en taille des Aloses")+ xlab("Tailles (mm)")+ ylab("Densite")+ annotate("text",x = 300, y = 0.07, label = "essai == 2", parse = T, vjust = 0, hjust = 0)+ scale_fill_brewer(name="Annees",palette="Set3")
- essai = 3
bilan_lot<-get("bilan_lot",envir_stacomi) g<-ggplot(bilan_lot@data) require(vcd) # appel au package vcd à installer à partir de R, package, installer les packages. col<-diverge_hcl(length(unique(bilan_lot@data$annee)),h = c(246, 40), c = 96, l = c(65, 90)) # ici appel à une fonction externe, les scale...brewer demandent moins de 9 à 12 couleurs en fonction de la palette g+stat_density(aes(x=val_quant,fill=annee),position='stack')+ ggtitle("Structure en taille des Aloses")+ xlab("Tailles (mm)")+ ylab("Densite")+ annotate("text",x = 300, y = 0.07, label = "essai == 3", size=10, parse = T, vjust = 0, hjust = 0,col="red")+ scale_fill_manual(name="Annees",values=col)
- essai = 4
bilan_lot<-get("bilan_lot",envir_stacomi) g<-ggplot(bilan_lot@data) col<-rainbow(length(unique(bilan_lot@data$annee))) g+stat_density(aes(x=val_quant,fill=annee),position='stack')+ ggtitle("Structure en taille des Aloses")+ xlab("Tailles (mm)")+ ylab("Densite")+ annotate("text",x = 300, y = 0.07, label = "essai == 4", parse = T, vjust = 0, hjust = 0,col="darkblue")+ scale_fill_manual(name="Annees",values = col)
- essai = 5
bilan_lot<-get("bilan_lot",envir_stacomi) g<-ggplot(bilan_lot@data[bilan_lot@data$annee%in%2005:2011,]) col<-rainbow(length(unique(bilan_lot@data$annee))) g+stat_density(aes(x=val_quant,ymax = ..density.., ymin = -..density..,col=annee), geom = "ribbon", position = "identity",alpha=0.4,fill=NA) + annotate("text",x = 300, y = 0.01, label = "essai == 5", parse = T, vjust = 0, hjust = 0,col="cyan")+ scale_color_manual(name="Annees",values = col)+ theme(panel.background = element_rect(fill = "black"))
Utilisation du facettage
- J'ai relancé l'application Bilan>migrationInterannuelle(pour effacer les objets en mémoire), puis j'ai choisi un nombre plus réduit d'années (2005-2008),
- choix geom > histogram
- x = val_quant
- couleur > annee (la bordure)
- fill > annee (le fond)
- alpha > 0.2 (la transparence)
- essai =5
g+geom_histogram(aes(x=val_quant,colour=annee,fill=annee),alpha='0.2',position='identity')+ ggtitle("Structure en taille des Aloses Essai 5")+xlab("Tailles (mm)")+ylab("Effectif")+ scale_fill_discrete(name="Annee")+scale_colour_discrete(name="Annee")
- essai=6 (note la conversion pixel taille se traduit par une discontinuité en choisissant un intervalle de 5 mm (binwidth=5), on voit des trous dans les intervalles qui sont lié à l'utilisation du logiciel de vidéocomptage... )
g+geom_histogram(aes(x=val_quant,fill=mois),binwidth=5,position='stack')+ ggtitle("Structure en taille des Aloses Essai 6")+xlab("Tailles (mm)")+ylab("Effectif")+ facet_grid(annee ~ .,scales = "free", space="free")+scale_fill_brewer(palette="Set1")
- essai=7
g+geom_point(aes(x=annee,y=val_quant),alpha=1,position="jitter")+ stat_boxplot(aes(x=annee,y=val_quant),colour="red",fill="blue",outlier.colour="red",alpha=0.4)+ ggtitle("Structure en taille des Aloses Essai 7")+xlab("Annees")+ylab("Taille")
script pour Brice pour avoir la structure en taille + un bilan interannuel dans la même fenêtre
On reprend l'exemple de tout à l'heure avec la formule suivante
g+stat_density(aes(x=val_quant,fill=annee),position='stack') + ggtitle("Structure en taille des Aloses Essai 7")+xlab("Taille")+ylab("Densite")+ scale_fill_brewer(palette = "Spectral")
- essai =8
Brice veut le détail des années + un graphique qui fait le bilan de toutes les années. Pour faire ça il faut récupérer le jeu de données qui se trouve à l'intérieur de p, le modififier et le repasser à l'objet p.
donnees<-bilan_lot@data # on récupère les données. donnees$annee1<-donnees$annee # on crée une nouvelle variable annee1. copie_de_donnees<-donnees # on copie le jeu de données. copie_de_donnees$annee1<-"all" #dans ce nouveau jeu, on remplace les valeurs des annees par "all" g<-g%+%rbind(donnees,copie_de_donnees) # on raboute le nouveau et l'anciens jeu (fonction rbind = row bind, coller les lignes) # la formule %+% permet de remplacer le jeu de données dans un objet de type ggplot. g+stat_density(aes(x=val_quant,fill=annee),position='stack') +facet_grid(annee1 ~ .,scales="free") + ggtitle("Structure en taille des Aloses Essai 7")+xlab("Taille")+ylab("Densite")+ scale_fill_brewer(palette = "Spectral")
Last modified 8 years ago
Last modified on Oct 23, 2016 10:04:23 PM