Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Graphiques en 3D dynamiques :Objectifs Réaliser des **graphiques 3D dynamiquess**, c'est à dire **interactifs**, tels que des **nuages de points** et des **surfaces de réponse** Les commandes sont présentées sur le jeu de données **Melons.csv** et les exercices proposés portent sur le jeu de données **Her.csv**. :Remarque : Besoin de quelques rappels pour l'importation et la préparation du jeu de données ? {#rq_preparation_donnees_graphiques_de_base, toggle=collapse, title-display=show} Le jeu de données **Melons** est issu d'une étude réelle relative à un essai variétal sur des melons. Elle a pour objectif de repérer les facteurs influençant le calibre des melons. Le jeu de données **Her**, issu d'une étude réelle sur des patients, présente les caractéristiques du corps humain : la taille et la masse corporelle, l'indice de masse corporelle, le pouls, la tension diastolique et systolique, les dimensions de différents organes en fonction du sexe et de l'âge. Les liens ci-dessous permettent de télécharger les fichiers de données, de visionner une vidéo expliquant la description associée et d'obtenir les lignes de code pour importer le jeu de données sur R. | Jeu de données | Excel | CSV | Présentation | Commande R | Explication | |-----------------|--------|-------------|----------------|------------|-------------| | Données Melons | [](donnees/DonneesMelons.xlsx) | [](donnees/DonneesMelons.csv) | [](video/DonneesMelons.html) | [Lignes de code pour importer et préparer le jeu de données](#ligne_code_importation) | [Explications sur la préparation du jeu de données](#explication_preparation_importation) | | Données Her | | [](donnees/DonneesHer.csv) | | [Lignes de code pour importer et préparer le jeu de données](#ligne_code_importation2) | [Explications sur la préparation du jeu de données](#explication_preparation_importation2) | :Exemple {#ligne_code_importation, toggle=popup} ```r Melons <- read.csv2("DonneesMelons.csv", header = TRUE, stringsAsFactors = TRUE) Melons <- transform(Melons, Creneau = as.ordered(Creneau), Couverture = as.factor(Couverture)) quatre_melons <- subset(Melons, Variete=='Cezanne'|Variete=='Fidji'|Variete=='Hugo'|Variete=='Manta') quatre_melons$Variete <- droplevels(quatre_melons$Variete) ``` :Exemple {#explication_preparation_importation, toggle=popup} Dans un premier temps, [importer le jeu de données melons sur RStudio](caps_2_3_importation_CSV.html). ```r Melons <- read.csv2("DonneesMelons.csv", header = TRUE, stringsAsFactors = TRUE) Melons <- transform(Melons, Creneau = as.ordered(Creneau), Couverture = as.factor(Couverture)) ``` Les valeurs manquantes sont supprimées du tableau de données avec la fonction **`na.omit()`**: ```r DonneesMelons<-na.omit(Melons) ``` Seules les variables `Duree`, `K` et `Poids` sont considérées par la suite. Pour cela, l'extraction peut être effectuée à l'aide de la commande **`subset()`** dans un objet nommé `melons`. Cette commande quand elle est appliquée à un jeu de données a l'avantage de retourner un **objet de la classe `data.frame`**. ```r melons<-subset(DonneesMelons, select = c(Duree,K, Poids)) ``` :Exemple {#ligne_code_importation2, toggle=popup} ```r her=read.csv2("donnees/DonneesHer.csv", header = TRUE, stringsAsFactors = TRUE) sante=subset(her,select=c(POIDS,TAILLE,BRAS)) ``` :Exemple {#explication_preparation_importation2, toggle=popup} Dans un premier temps, importer le jeu de données Her sur RStudio : ```r her <- read.csv2("donnees/DonneesHer.csv", header = TRUE, stringsAsFactors = TRUE) ``` Dans un second temps, sélectionner les variables d'intérêt POIDS, TAILLE et BRAS : ```r sante=subset(her,select=c(POIDS,TAILLE,BRAS)) ``` ### Introduction {#bloc_intro} L'installation et le chargement des packages **`car`** et **`rgl`** est indispensable, ainsi qu'une mise à jour de java flash player. | Rôle | Commande R | Package |Exemple |Exercice| |:---------------------:|:--------------------:|:--------------------:|:--------------------:|:---------------------:| |Nuage de points dynamique | `scatter3d()` | **`car`** et **`rgl`** | [ici](#exemple_nuage_dyn)| [ici](#exo_nuage_dyn) | |Surface de réponse | `()` | **`plot3D`** et **`plot3Drgl`** | | | :Remarque {#rq_dyn, toggle=collapse} Pour chacun des graphiques suivants, les actions suivantes sont possibles: + Déplacer le graphique à droite, à gauche, en haut ou en bas à l'aide de la souris positionnée sur le graphique ; + Zoomer/Dézoomer le graphique grâce à la molette de la souris. :Exemple {#exemple_nuage_dyn, toggle=popup} scatter3d() contient trois arguments : + La formule de la régression (c'est le même argument que dans `lm()`) + point.col contient la couleur désirée pour les points + surface=FALSE ```r library(car) library(rgl) open3d() scatter3d(melons$Poids~melons$Duree+melons$K,point.col = "blue", surface=FALSE) ``` [Le résultat du code ci-dessus](figure/test3D_2.html). :Exercice : Réaliser un nuage de points en 3D interactif {#exo_nuage_dyn, toggle=popup} A partir de l'objet `sante`, réaliser un nuage de points en 3D interactif des variables POIDS, TAILLE et BRAS du jeu de données **`her.csv`**. C'est une seule commande si les packages **`car`** et **`rgl`** ont déjà été téléchargés. :Corrigé {#answer_nuage3D_int, toggle=collapse} ```r library(car) library(rgl) open3d() scatter3d(sante$BRAS~sante$POIDS+sante$TAILLE,point.col = "blue", surface=FALSE) ``` [Le résultat du code ci-dessus](figure/test3D.html). :Suite Graphiques 3D {#3D, toggle=collapse, title-display=hidden} [Graphiques 3D statiques](caps_10_1_graphiques_3d_statique.html) [Graphiques 3D dynamiques](caps_10_2_graphiques_3d_dynamique.html)