Production de série de graphique

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Pierre-Marc Chouinard
Messages : 32
Enregistré le : 03 Fév 2017, 13:50

Production de série de graphique

Messagepar Pierre-Marc Chouinard » 22 Fév 2017, 14:34

J'aimerais s'il existe une façon de produire des graphique de style "barplot" en série, sans être oblige de les créer un à un ou si vous avez des trucs ou piste de solution.

J'ai par exemple:

COD_ESP NO_AFFEC PDS_CAPT
1 10 G 10
2 10 H 8
3 30 C 12
4 30 F 4
5 30 G 19
6 30 H 8
7 31 B 135
8 40 A 58
9 40 B 133
10 40 C 338
11 40 D 1187
12 40 E 11
13 40 F 125
14 40 G 121
15 40 H 17
16 40 I 411
17 42 A 422
18 42 B 228
...
125 2210 A 57


Je sort un graphique synthèse:

Code : Tout sélectionner

barplot(PDS_CAPT_ESP_AFF$PDS_CAPT,names.arg=paste(PDS_CAPT_ESP_AFF$COD_ESP,PDS_CAPT_ESP_AFF$NO_AFFEC),xlim=c(0,50),ylim=c(0,7000), las=2,main="PDS_CAPT par affectation" ,xlab="Affectation")


Le graphique synthèse est difficile à décortique et l'affichage me cause problème pour afficher tout les bars et les etiquette de l'axe des X associées. J'aimerais pouvoir produire de façon automatique des graphiques de type "barplot" du poid de capture (PDS_CAPT) par espèces pour les différentes affectations et/ou l'inverse pour une même affectation les poids de capture des différentes espèces. Je cherche en quelque sorte à pouvoir effectuer un "barplot, by="


Merci

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Production de série de graphique

Messagepar Pierre-Yves Berrard » 23 Fév 2017, 14:18

Une approche basique serait d'utiliser tapply :

Code : Tout sélectionner

tapply(
  PDS_CAPT_ESP_AFF$PDS_CAPT, # (discrétiser cette variable ?)
  PDS_CAPT_ESP_AFF$NO_AFFEC,
  function(x) barplot(table(x))
)

Mais les possibilités sont assez limitées, on ne pourra pas par exemple facilement récupérer le nom du deuxième paramètre (le "by") pour l'insérer dans le titre.

Peut-être créer une fonction, puis faire une boucle dessus (ou un lapply).

Ou utiliser facet_wrap du package ggplot2.
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité