Commit 3af36501 authored by Ednomesor's avatar Ednomesor

MAJ QUANTI

parent e278a039
......@@ -65,6 +65,9 @@ plot(g4, edge.arrow.size=0.5,
edge.curved=0.2)
####Avoir des infos sur mon graphe####
#Info générale sur mon objet igraph
g4
#lister les arrêtes
E(g4)
......
......@@ -13,10 +13,10 @@ setwd("~/Bureau/Formation/Nice_GDR/nice1/script_R/")
library(igraph)
library(colorRamps)
#Je mets mes données dans un tupperware
#Je charge mes données
liens<-read.csv("data/edges_anonym.csv",sep=",", header=TRUE)
#Je transforme le contenu de mon premier tupperware en objet réseau
#Je crée un graphe avec mes données
g<-graph.data.frame(liens[,-3], directed = FALSE)
plot(g)
......
......@@ -38,8 +38,8 @@ Pour s'orienter dans cette nébuleuse, il existe un répertoire des \textit{pack
S'il a beaucoup d'avantages (libre, gratuit, multiplateforme, puissant, maintenu activement par une communauté), il a l'inconvénient majeur de ne pas être très ergonomique et graphique pour l'utilisateur débutant. R se rapproche davantage du langage de programmation et fonctionne à l'aide de scripts composés de différentes commandes et de fonctions de traitement.
Ces scripts vont être exécutés dans une console et produire des résultats sous forme chiffrée ou graphique (tableau, histogramme, réseau, etc.). Il n'y a pas de bouton permettant d'exécuter des fonctions pré-définies comme dans un logiciel à interface graphique traditionnel. Il va falloir écrire soi-même toutes les manipulations que l'on veut exécuter sur ces données. A l'instar d'une recette de cuisine, vous devrez spécifier les ingrédients, les outils utilisés et le type de transformation que vous allez leur faire subir pour arriver à un résultat final plus ou moins comestible selon vos talents de cuisinier.
Pour continuer sur cette analogie, le format d'une recette de cuisine est assez fixe, en préambule vous retrouvez le niveau de difficulté, le temps de préparation et le temps de cuisson, puis vient la liste des ingrédients, et enfin les étapes détaillées de leur préparation. Cette formalisation facilite la compréhension de la recette mais aussi sa transmissibilité. A structure de données également, n'importe qui pourra exécuter votre script avec son propre jeu de données.
Pour construire un script R, cela se passe de la même façon, il faut tout détailler. Par ailleurs, l'explicitation des commandes à l'aide de commentaires est importante pour arriver afin de permettre aux autres et à vous-même de comprendre ce qu'il se passe dans le script.
Pour continuer sur cette analogie, le format d'une recette de cuisine est assez standard : en préambule vous retrouvez le niveau de difficulté, le temps de préparation et le temps de cuisson, puis vient la liste des ingrédients, et enfin les étapes détaillées de leur préparation. Cette formalisation facilite la compréhension de la recette mais aussi sa transmissibilité (on peut vouloir rechercher une recette avec un temps de préparation court, ou avec seulement certains ingrédients).
Pour construire un script R, cela se passe de la même façon, il faut tout détailler. De cette manière, à structure de données également, n'importe qui pourra exécuter votre script avec son propre jeu de données. Par ailleurs, l'explicitation des commandes à l'aide de commentaires est importante afin de permettre aux autres et à vous-même de comprendre ce qu'il se passe dans le script.
Mais au fait, pourquoi s'embêter à écrire un script ?!
L'avantage de formaliser ses traitements dans un script est, qu'une fois votre script rédigé ,vous n'avez plus à vous soucier d'effectuer une par une les manipulations (ouvrir un fichier, charger, modifier les données, opérer les calculs, exporter les résultats etc.). Tout sera consigné dans votre script. Si la structuration des données est respectée, le script exécutera les traitements que vous avez codés qu'importe la valeur de vos données de départ. Pratique !
......@@ -47,10 +47,15 @@ L'avantage de formaliser ses traitements dans un script est, qu'une fois votre s
### L'interface RStudio
L'interface de RStudio se compose d'un espace de travail en 4 blocs : le script en cours de rédaction (en haut à gauche), la console (en dessous), l'environnement de variables (en haut à droire), l'espace d'affichage des visualisations avec les onglets pour atteindre les dossiers, la liste des packages installés et/ou actifs dans R, l'aide, etc. (en bas à droite).
Un script s'exécute :
* soit ligne par ligne avec le bouton RUN ou au clavier Ctrl+Enter (exécutera la commande là où se situe votre pointeur)
* soit intégralement en sélectionnant tout le script puis en cliquant sur le bouton RUN, au clavier Ctrl+Shift+Enter, ou dans la console `source("myScript.r", echo = TRUE)`
**Bonnes pratiques**
* Il est préférable de créer un projet R (sorte de dossier dédié à votre manipulation) où vous pourrez enregistrer vos scripts, vos exports mais aussi les données des manipulations en cours. C'est très pratique quand vous devez interrompre votre travail sur R mais que vous souhaitez garder active les données de votre environnement de variable.
* Commentez votre code à l'aide du #
* Commentez votre code à l'aide du # (indiquer le nom, la date et le contexte en premières lignes permet de se remémorer ce que l'on cherchait à produire)
* Appeler les packages nécessaires à l'analyse en début de script
## 1 - Créer manuellement un graphe dans R
......@@ -169,7 +174,8 @@ plot(g3bis)
### Focus sur la fonction plot()
La fonction `plot()` est une fonction native de R, mais l'extension igraph lui a ajouté de nouveaux arguments dédiés à la visualisation de graphe.
La fonction `plot()` est une fonction native de R, mais l'extension igraph lui a ajouté de nombreux paramètres dédiés à la visualisation de graphe.
Pour connaître l'ensemble des paramètres disponibles pour cette fonction voir la documentation igraph : <http://igraph.org/r/doc/plot.common.html>
```{r}
#Créer une visualisation et la personnaliser
......@@ -185,38 +191,55 @@ plot(g4, edge.arrow.size=0.5,
## Manipuler mon objet igraph
Informations sur les sommets et les liens ou examiner mon graphe sous forme de tableau matriciel
Quand je créé un graphe manuellement ou quand je charge un jeu de données réseaux avec le package `igraph`, j'initialise un objet igraph doté de certaines caractéristiques. Pour les connaître, je demande à R des informations sur l'objet igraph que je viens de créer/charger :
```{r}
#Info générale sur mon objet igraph
g4
```
Il renvoie une sorte de résumé, comprenez :
* `IGRAPH` : c'est un objet igraph (jusque là tout va bien !)
* `DN--` : D pour *directed graph* (sinon U pour *undirected*), N pour *named graph* c'est à dire qu'igraph à reconnu que les noeuds portaient des noms, les deux autres lettres (absentes ici) seraient W pour *weighted graph* si les liens sont valués et B pour *bipartite graph* si le graph est bipartite (2-mode).
* 8 et 6 correspondent respectivement au nombre de noeuds et de liens présents dans le graphe.
* à la suite des deux tirets serait inscrit le nom du graphe s'il en a un
* `attr: ` : donne la liste des attributs du réseau, ici seul `name (v/c)` indique qu'il y a un attribut name pour les noeuds (*vertices* en anglais) de type c *character*.
On peut vouloir des informations propres aux sommets ou aux liens. E pour *Edges* (liens), V pour *Vertices* (noeuds).
```{r}
#########Avoir des infos sur mon graphe#######
#lister les arrêtes
E(g4)
#lister les sommets
V(g4)
```
#Examiner la matrice
...ou examiner mon réseau sous forme de matrice (utilisation des crochets)
```{r}
g4[]
```
###Focus sur les attributs des liens et des sommets
### Focus sur les attributs des liens et des sommets
Pour examiner le contenu de mes attributs de noeuds comme des liens, on utilise le `$`, en précisant si l'on s'intéresse aux noeuds `V(nomdugraphe)` ou aux liens `E(nomdugraphe)`
```{r}
#R automatiquement va assigner la colonne $name lors de la création du graphe
#Donc si je lui demande la liste des noms
V(g4)$name
#Ajoutons des attributs à nos sommets
#J'ajoute des données sur le genre
V(g4)$genre <- c("homme", "homme", "homme", "homme", "femme", "femme", "femme", "femme")
```
Faire une visualisation selon la valeur des attributs
Avec cette syntaxe `V(nomdugraphe)$(nomattribut)`, on peut manipuler cette objet comme n'importe quel objet R et vouloir lui assigner des variables :
```{r}
#Ajoutons des attributs à nos sommets
#J'ajoute des données sur le genre
V(g4)$genre <- c("homme", "homme", "homme", "homme", "femme", "femme", "femme", "femme")
```
Cette syntaxe peut être également utilisée dans les paramètres de la fonction `plot()` pour personnaliser la visualisation selon la valeur des attributs présents dans le graphe.
```{r}
plot(g4,
edge.arrow.size=.5,
vertex.label.color="black",
......@@ -232,10 +255,10 @@ plot(g4,
Ouvrir le fichier script3_donnees_ext.R
```{r fig.align='center'}
#Ecole thématique Nice - GDR ARSHS
# Séance : Mesures et représentations -
#Quantilille
# Séance : Initiation à l'analyse de réseau -
# Première visualisation de réseau à partir d'un jeu de données externe
# Date : 4 juillet 2017
# Date : 27 juin 2017
# Auteur : Rosemonde Letricot
#Je nettoie mon espace de travail
......@@ -247,10 +270,10 @@ setwd("~/Bureau/Formation/Nice_GDR/nice1/script_R/")
library(igraph)
library(colorRamps)
#Je mets mes données dans un tupperware
#Je charge mes données
liens<-read.csv("~/Bureau/Formation/Nice_GDR/nice1/script_R/data/edges_anonym.csv",sep=",", header=TRUE)
#Je transforme le contenu de mon premier tupperware en objet réseau
#Je crée un graphe avec mes données
g<-graph.data.frame(liens[,-3], directed = FALSE)
plot(g)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment