Utilisation des fonctions graphiques

library(tools4DCE)

Objets de classe seuil

Le package tools4DCE a créé des objets S4 de classe seuils. Ces objets affectent à un ensemble paramètre, support, fraction, unités définis par leurs codes SANDRE, des classes de qualité ainsi que l’ordre et la couleur des classes de qualité.

Classes seuils prédéfinies

Pour créer une liste de seuils prédéfinis à partir des fichiers de données il suffit de taper la commande makeSeuils(). A ce jour 5816 seuils différents sont ainsi définis. On peut se limiter à créer la liste pour un ensemble de codes paramètres en renseignant l’argument CdParametre. Idem pour les codes support, fraction, pour les types de seuils (DCE ou NON_DCE), pour les spécificités (ex. SALMONICOLE ou CYPRINICOLE).

tmp<-makeSeuils()
tmp[100]
## $MES
## An object of class "seuil"
## Slot "nom_parametre":
## [1] "MES"
## 
## Slot "nom_seuil":
## [1] "Guide évaluation ME"
## 
## Slot "type_seuil":
## [1] "NON_DCE"
## 
## Slot "code_parametre":
## [1] "1305"
## 
## Slot "synonymes_parametre":
## [1] "1305"
## 
## Slot "support":
## [1] "3"
## 
## Slot "fraction":
## [1] "23"
## 
## Slot "code_unite":
## [1] "162"
## 
## Slot "seuils":
##   SEUILMIN SEUILMAX   CLASSE NOM_COULEUR
## 1     -Inf       25 TRES BON  cadetblue1
## 
## Slot "bornesinfinclue":
## [1] FALSE
## 
## Slot "specificites":
## [1] "CAS_GENERAL"
test<-makeSeuils(CdParametre=c("1340", "1301"), specificites=c("CAS_GENERAL", "CYPRINICOLE"), type_seuil = "DCE")
print(test)
## $TEMPERATURE
## An object of class "seuil"
## Slot "nom_parametre":
## [1] "TEMPERATURE"
## 
## Slot "nom_seuil":
## [1] "AM. 25/01/2010"
## 
## Slot "type_seuil":
## [1] "DCE"
## 
## Slot "code_parametre":
## [1] "1301"
## 
## Slot "synonymes_parametre":
## [1] "1301"
## 
## Slot "support":
## [1] "3"
## 
## Slot "fraction":
## [1] NA
## 
## Slot "code_unite":
## [1] "27"
## 
## Slot "seuils":
##   SEUILMIN SEUILMAX   CLASSE NOM_COULEUR
## 1     -Inf     24.0 TRES BON  dodgerblue
## 2     24.0     25.5      BON      green1
## 3     25.5     27.0    MOYEN      yellow
## 4     27.0     28.0 MEDIOCRE      orange
## 5     28.0      Inf  MAUVAIS         red
## 
## Slot "bornesinfinclue":
## [1] TRUE
## 
## Slot "specificites":
## [1] "CYPRINICOLE"
## 
## 
## $NO3
## An object of class "seuil"
## Slot "nom_parametre":
## [1] "NO3"
## 
## Slot "nom_seuil":
## [1] "AM. 25/01/2010"
## 
## Slot "type_seuil":
## [1] "DCE"
## 
## Slot "code_parametre":
## [1] "1340"
## 
## Slot "synonymes_parametre":
## [1] "1340"
## 
## Slot "support":
## [1] "3"
## 
## Slot "fraction":
## [1] NA
## 
## Slot "code_unite":
## [1] "162"
## 
## Slot "seuils":
##   SEUILMIN SEUILMAX   CLASSE NOM_COULEUR
## 1     -Inf       10 TRES BON  dodgerblue
## 2       10       50      BON      green1
## 3       50      Inf    MOYEN      yellow
## 
## Slot "bornesinfinclue":
## [1] TRUE
## 
## Slot "specificites":
## [1] "CAS_GENERAL"

La liste de l’ensemble des seuils prédéfinis peut être obtenue de la façon suivante : La liste des paramètres concernés est la suivante :

liste_des_seuils<-lapply(makeSeuils(), function(x) `@`( x , nom_parametre)[[1]])%>%unlist%>%sort%>%unique

Graphiques

Le package tools4DCE aide à réaliser des graphiques spécialement conçus pour des données de qualité des eaux.

Graphiques en mode points

Le code suivant fourni un exemple de graphiques pour le paramètre codé 1340 (Nitrates). La zone grisée correspond à la limite de quantification.

data0<-data.frame(DatePrel=Sys.Date() + sort(sample(1:500, 30)), RsAna=c(round(runif(30,0,100), 0)), LqAna=c(3))
graphDCE_points(data0, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE", specificites="CAS_GENERAL"), affiche_LQ = T, ymini = 0, sous_titre="station inconnue")

Si on le souhaite, on peut zoomer sur le graphique et afficher les valeurs hors gamme sous forme de cases colorées à l’aid ede l’option ymaxi.

graphDCE_points(data0, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE", specificites="CAS_GENERAL"), affiche_LQ = T, ymini = 0, ymaxi=90)

Si le jeu de données comporte une donnée très largement supérieures aux autres, alors la fonction définira l’échelle visible sans prendre en compte cette valeur (qui apparaitra sous forme d’un rectangle coloré).

data0[10,"RsAna"]<-800
graphDCE_points(data0, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE", specificites="CAS_GENERAL"), affiche_LQ = T, ymini = 0, coef_axes_date=0.2)

Graphiques en mode barre

On peut également réaliser des graphiques en barre, par exemple pour faire des bilans annuels

data <- data.frame(annee = seq(2010, 2013),
                   RsAna = c(12, 15.5, 67, 18.3))
graphDCE_bar(
  data,
  seuils = makeSeuils(
    CdParametre = "1340",
    type_seuil = "DCE",
    specificites = "CAS_GENERAL"
  ),
  ymaxi = 60
)

Graphiques boites à moustache

data1<-data.frame(DatePrel=Sys.Date() + sort(sample(1:2000, 100)), RsAna=c(round(runif(100,0,100), 0)), LqAna=c(3))
data1$mois<-format(data1$DatePrel, "%m")%>%factor(levels=c("07", "08", "09", "10", "11", "12", "01", "02", "03", "04", "05", "06"))
seuil1<-seuils<-makeSeuils(CdParametre = "1340", type_seuil="DCE", specificites="CAS_GENERAL")
graphDCE_boxplot(data1, seuils = seuil1)

Bilan des quantifications

Les fonctions suivantes permettent de faire le bilan, par exemple, sur les pesticides quantifiés sous forme de tableau.

donnees<-data.frame(parametres=rep(c("1506", "1907", "1221", "6854"), 100), RsAna=sample(0.001:3, 400, replace=TRUE), LqAna=c(rep(0.01,200),rep(0.2,100),rep(c(0.1,0.05,0.01,1),25)))
donnees<-donnees%>%mutate(RsAna=ifelse(RsAna<LqAna, LqAna, RsAna))
donnees<-donnees%>%mutate(CdRqAna=ifelse(RsAna>LqAna, "1", ifelse(sample(1:100,5)>10,"10","1")))
seuils<-makeSeuils(CdParametre=donnees$parametres%>%unique, specificites=c("OEB"), type_seuil = "AEP")
tableau<-groupe_tableau_distribution(donnees, col_CdParametre="parametres", col_CdSupport=NULL, col_CdFraction=NULL, col_CdUnite=NULL, seuils = seuils)
print(tableau)
## # A tibble: 16 x 11
## # Groups:   CLASSE [3]
##    CLASSE     CdRqAna    nb CATEGORIE NOM_COULEUR ALPHA parametre code_parametre
##    <fct>      <chr>   <int> <fct>     <chr>       <dbl> <chr>     <chr>         
##  1 [0;seuil ~ 10         12 <LQ et L~ darkturquo~   0.2 Metolach~ 6854          
##  2 ]seuil di~ 1          41 ]seuil d~ darkorange    1   Metolach~ 6854          
##  3 ]seuil di~ 10         16 <LQ et L~ darkorange    0.2 Metolach~ 6854          
##  4 >seuil po~ 1          31 >seuil p~ darkmagenta   1   Metolach~ 6854          
##  5 [0;seuil ~ 10         22 <LQ et L~ darkturquo~   0.2 AMPA      1907          
##  6 ]seuil di~ 1          37 ]seuil d~ darkorange    1   AMPA      1907          
##  7 ]seuil di~ 10         10 <LQ et L~ darkorange    0.2 AMPA      1907          
##  8 >seuil po~ 1          31 >seuil p~ darkmagenta   1   AMPA      1907          
##  9 [0;seuil ~ 10         28 <LQ et L~ darkturquo~   0.2 Glyphosa~ 1506          
## 10 ]seuil di~ 1          31 ]seuil d~ darkorange    1   Glyphosa~ 1506          
## 11 ]seuil di~ 10          5 <LQ et L~ darkorange    0.2 Glyphosa~ 1506          
## 12 >seuil po~ 1          36 >seuil p~ darkmagenta   1   Glyphosa~ 1506          
## 13 [0;seuil ~ 10         24 <LQ et L~ darkturquo~   0.2 Métolach~ 1221          
## 14 ]seuil di~ 1          31 ]seuil d~ darkorange    1   Métolach~ 1221          
## 15 ]seuil di~ 10         13 <LQ et L~ darkorange    0.2 Métolach~ 1221          
## 16 >seuil po~ 1          32 >seuil p~ darkmagenta   1   Métolach~ 1221          
## # ... with 3 more variables: code_support <chr>, code_fraction <chr>,
## #   code_unite <chr>

Il est possible de trier les molécules de la plus préoccupante à la moins préoccupante

tri_molecules(tableau, tri_croissant = T)
## [1] "Glyphosate"         "Métolachlore total" "Metolachlor ESA"   
## [4] "AMPA"

Ces tableaux peuvent être mis sous forme graphique

graphDCE_distribution(tableau, titre="Répartition des pesticides par rapport aux normes AEP")

On peut se limiter aux molécules les plus préoccupantes

graphDCE_distribution(tableau, titre="Répartition des pesticides par rapport aux normes AEP", nb_top=3)

Ou aux moins préoccupantes

graphDCE_distribution(tableau, titre="Répartition des pesticides par rapport aux normes AEP", nb_top=3, tri_croissant = F)