Anúncio
Anúncio

Mais conteúdo relacionado

Anúncio

Cours Visualisaton 2018 - 2019.pptx

  1. DATA VISUALISATION Master Data Science Landry ANGOUA
  2. Introduction – Statistiques et visualisaiton des données
  3. Introduction a R
  4. I. Les bases de la librairie GGPLOT2 1. Qu’est ce qu’un objet ggplot Un objet ggplot est l’objet de base de la grammaire de graph. Il est initialisé à partir d’un ou plusieurs des éléments suivants: - un data frame : toujours le premier paramètre. Peut être précisé aussi à l’aide du paramètre ‘data=dataframe’ - un ou plusieurs aesthetics: à l’aide de la fonction aes() I.2 Aesthetics Il s’agit des propriétés ( axes de abscisses et des ordonnes, les couleurs, les formes dessinées, le contenu des formes, la tailles des formes etc ….) du graphique permettant de projeter des caractéristiques des données. Les aesthetics sont liées aux fonctions geom (types de graphs, dessins) ajoutes aux graphiques ## Generic code Cas 1 object <- ggplot(dataframe, aes(x = column_1, y = column_2)) ## or, if you don't need to save the object Cas 2 ggplot(dataframe, aes(x = column_1, y = column_2)) Exemple: Mon_graph<-ggplot(data=titanic, aes(y=Fare))
  5. I. Les bases de la librairie GGPLOT2 I.3 Creation d’un graphique Afficher la précision des géoms permet de faire afficher le graphique. Cela est réalisé à l’aide des fonction geom_xxx() NB: les caractéristiques (aes), les data, ainsi que les types de graphiques (geom) peuvent être utilises de façon alternatives: Exemples, les commandes ci-dessous produisent les mêmes résultats ## Enregistrer un graphique: 1. Ouvrir un graphic device ( pdf, png, etc) à l’aide des fonctions pdf(), png() … 2. Exécuter le code de création du graphique 3. fermer le graphic device à l’aide de la fonction dev.off() ## Generic code Le ‘+’ doit être rajouté à la fin des lignes geom_histogram() ## Generic code 1. ggplot(data=titanic, aes(x=Fare))+ geom_histogram() 2. ggplot(data = titanic) + geom_histogram(aes(x = Fare)) 3. ggplot() + geom_histogram(data = titanic, aes(x = Fare))
  6. I. Les bases de la librairie GGPLOT2 I.4 Geoms Les fonctions de type geom_xxx() permettent de préciser la nature du graphique ou d’ajouter des éléments sur un graphique existant et requiert un ou plusieurs aesthetics (x, y, but alpha (transparency), color, fill, group, size, shape,stroke …) Chaque fonction geom_xxx dispose de différents types de paramètres: 1 - de paramètres aesthetics indispensables 2 - de paramètres aesthetics acceptés 3 - d’autres types de parametres ## exemples Cas 1 ggplot(worldcup, aes(x = Time, y = Passes)) + geom_point() Cas 2 ggplot(worldcup, aes(x = Time, y = Passes, color = Position, size = Shots)) + geom_point() Cas 3 Mon_graph<-ggplot(data=titanic, aes(x=Fare))+ geom_histogram(bins=15) ## aide: ?geom_histogram
  7. I. Les bases de la librairie GGPLOT2 I.4 Geoms Le tableau ci dessous donne des exemples de geom et de paramètres acceptés. Function Common aesthetics Common arguments geom_point() x, y geom_line() x, y arrow, na.rm geom_segment() x, y, xend, yend arrow, na.rm geom_path() x, y na.rm geom_polygon() x, y geom_histogram() x bins, binwidth geom_abline() intercept, slope geom_hline() yintercept geom_vline() xintercept geom_smooth() x, y method, se, span geom_text() x, y, label parse, nudge_x, nudge_y
  8. I. Les bases de la librairie GGPLOT2 I.5 Multiples Geoms Le langage ggplot permet à l’aide des geoms l’ajout successif d’information sur un graphique. Dans l’exemple ci-dessous: -Nous présentons les joueurs au mondial 2010 suivant le nombre de leur passe et de leur tirs aux buts (1) -Nous allons ensuite rajouter des informations sur les joueurs aux statistiques remarquables (2) #0 library(dplyr) noteworthy_players <- worldcup %>% filter(Shots == max(Shots) | Passes == max(Passes)) %>% mutate(point_label = paste(Team, Position, sep = ", ")) #1 ggplot(worldcup, aes(x = Passes, y = Shots))+ #2 geom_point() + geom_text(data = noteworthy_players, aes(label = point_label), vjust = "inward", hjust = "inward") ## aide: la libraire ‘dplyr’ simplifie la manipulation des données. ?mutate ?filter ## aide: On note ici que l’on a utilise pour ce graphique des data de deux différents data frame
  9. I. Les bases de la librairie GGPLOT2 I.6 l’aesthetics constante On peut aussi afficher un aesthetics qui prend une seule valeur pour toute les données ( couleurs, forme, size, . gplot(worldcup, aes(x = Time, y = Passes)) + geom_point(color = "darkgreen") ## aide: • Les differentes valeurs que peut prendre l’aes ‘shape’ • Les aesthetics constant doivent être appelés en dehors de la clause aes() Element Description ggtitle Plot title xlab, ylab x- and y-axis labels xlim, ylim Limits of x- and y-axis I.7 extension ggplot
  10. I. Les bases de la librairie GGPLOT2 I.8 Exemples : Histogram
  11. I. Les bases de la librairie GGPLOT2 I.8 Exemples : scaterplot
  12. II. Customisation GGPLOT2 1. Best Practices II.1.1. Densite des data par pixel Une des bonnes pratiques est de garder les graphiques les moins surcharge possibles en pixel. L’objectif étant d’avoir le taux d’information par pixel le plus eleve possible ## aide: Le theme retenu est ici capital: exemple: theme_linedraw, theme_dark, theme_void, theme_dark, theme_classic, theme_tufte… LOW DENSITY HIGH DENSITY
  13. II. Customisation GGPLOT2 1. Best Practices II.1.2. La clarté des labels S’efforcer à disposer des labels et notifications compréhensibles ## aide: la libraire ‘dplyr’ simplifie la manipulation des donnees. ?fct_recode = > reondification de label ?filter A éviter Bonne pratique ## aide: coord_flip permet d’inverser les axes. ## aide: Les fonctions xlab, ylab, scale_x_continuous, ggtitle
  14. II. Customisation GGPLOT2 1. Best Practices II.1.3. L’usage des références L’objectif est de rajouter aux graphiques des repères ou références ( ligne de démarcation verticales ou horizontales, intervalle de confiance etc) A eviter ## aide: coord_flip permet d’inverser les axes. ## aide: Geom_smooth, geom_hline, geom_vline, … A éviter Bonne pratique
  15. II. Customisation GGPLOT2 1. Best Practices II.1.4. La mise en exergue Il s’agit de mettre en exergue des informations permettant une meilleure compréhension du graphique ou que l’on juge nécessaire ( des outliers..) ## aide: coord_flip permet d’inverser les axes. ## aide: mutate,, … A éviter Bonne pratique
  16. II. Customisation GGPLOT2 1. Best Practices II.1.5. Les multiples visualisations Il s agit de visualiser des sous-ensemble du jeu de données, dans des plans ( repères ) juxtaposées. ## aide:  facet_grid : range les sous graph par lignes et colonnes suivant les options de la fonction  Facet_wrap: organise les sous-graphs obligatoirement en nombre de ligne et de colonne. Utile lorsqu’il y a plusieurs modalités A éviter Bonne pratique
  17. II. Customisation GGPLOT2 1. Best Practices II.1.6. L’ordre Le choix de l’ordre peut améliorer l’intelligibilité d’un graphique ## aide:  dplyr: arrange: permet de réorganiser suivant une variable ## arrange & mutate : pour réorganiser les données summary_wc<- summary_wc%>% arrange(mean_time) %>% # re-order and re-set mutate(Team = factor(Team, levels = Team)) A éviter Bonne pratique
  18. II. Customisation GGPLOT2 1. Best Practices 1.4. Echelles et couleurs Les fonctions scale_[aesthetic]_[vector] permettent de modifier l’échelle et la gradation, la légende de n’importe quel aesthetics, ( x,y, size, color ect). #0 ggplot(worldcup, aes(x = Time, y = Passes, color = Position, size = Shots)) + geom_point(alpha = 0.5) + scale_x_continuous(name = "Time played (minutes)", breaks = 90 * c(2, 4, 6), minor_breaks = 90 * c(1, 3, 5))+ scale_size_continuous(name = "Shots on goal", breaks = c(0, 10, 20)) Parametres de scale Description name Label ou la légende breaks Le vecteur des principaux ‘breaks’ minor_breaks Le vecteur des ‘breaks’ secondaires labels Label des breaks (variable categorielle) limits Les limites de l’axe ## Exemples:  scale_x_continuous  Sacle_y_log  scale_color_gradient (variable continue)  scale_color_brewer (usage de palette)  scale_color_manual  scale_fill_viridis
  19. III. Mapping 1. Cartographie dans R 3.1.1 Créer une carte avec ggplot2 Plusieurs fonctions permettent de représenter des cartes: > parler de geom_path vs geom_line, geom_polygone Parler du package de couleur viridis us_map %>% filter(region %in% c("north carolina" , "south carolina")) %>% ggplot(aes(x = long, y = lat)) + geom_point() us_map %>% filter(region %in% c("north carolina", "south carolina")) %>% ggplot(aes(x = long, y = lat , group=group)) + geom_path() us_map %>% filter(region %in% c("north carolina", "south carolina")) %>% ggplot(aes(x = long, y = lat , group=group)) + geom_polygon()+ theme_void()
  20. III. Mapping 1. Cartographie dans R 3.1.1 Créer une carte avec ggplot2 Dans cet exemple on représente le score du parti républicains aux elections présidentielle de 1976 dans chaque état. >Table_with_vote= votes.repub %>% tbl_df() %>% mutate(state = rownames(votes.repub), state = tolower(state)) %>% right_join(us_map, by = c("state" = "region")) >ggplot(Table_with_vote,aes(x = long, y = lat, group = group, fill = `1976`)) + geom_polygon(color = "black") + theme_void() + scale_fill_viridis(name = "Republicannvotes (%)")
  21. III. Mapping 1. Cartographie dans R 3.1.2. leaflet Lorsqu’on ne dispose pas des donnes dans le bon format, nous pouvons utiliser la bibliothèque leaflet. Dans l’exemple ci-dessous on représente sur une carte de la commune du plateau à Abidjan, des points identifies par leur coordonnées en longitude et latitude. > library(leaflet) Abidjan= data.frame(c(1,2,3,4) , c(5.316658, 5.333894,5.320400),c(-4.032177, -4.010441,-4.017852)) colnames(Abidjan)<-c('id',"lat","lng") leaflet() %>% addTiles() %>% addMarkers(data = Abidjan[c(1,2,3),] , lng = ~lng, lat=~lat)
  22. IV. Techniques Avancées 1. Les graphiques interactifs 4.1.1 Le package Plotly Ce package permet de créer des graphiques interactifs que l’on peut visualiser des supports HTML. Creation de graphique à l’aide de plot_ly >library(plotly) plot_ly(worldcup, type = "scatter", x = ~ Time, y = ~ Shots, color = ~ Position) ## aide: >Dans plot_ly, les variables sont affectées a l’aide de x=~var > Les asthetics constant sont renseignés à l’aide de la fonctin I() sans le ‘~’ ex: color = I("blue") > nepali%>% plot_ly(x=~ht)%>% add_histogram( color = I("lightblue"))
  23. IV. Techniques Avancées 1. Les graphiques interactifs 4.1.1 Le package Plotly ## aide: > Les tags html peuvent être utilisés >Les fonctions add_* jouent le rôle des geom* de ggplot : add_markers, add_lines, add_paths, add_histograms… > worldcup %>% mutate(Name = rownames(worldcup)) %>% plot_ly(x = ~ Time, y = ~ Shots, color = ~ Position)>% add_markers(text = ~ paste("<b>Name:</b> ", Name , "<br />", "<b>Team:</b> ", Team), hoverinfo = "text") > nepali%>% plot_ly(x=~ht)%>% add_histogram( color = I("lightblue"))
  24. IV. Techniques Avancées 1. Les graphiques interactifs 4.1.1 Le package Plotly Création de graphique à l’aide de ggplotly Il est aussi possible de changer des graphiques ggplot en graphiques plotly en utilisant la fonction ggpoltly >worldcup_scatter <- worldcup %>% ggplot(aes(x = Time, y = Shots, color = Position)) + geom_point() ggplotly(worldcup_scatter)
  25. IV. Techniques Avancées 1. R shiny Rshiny permet de construire des interfaces web d’interaction avec les utilisateurs. Sans se limiter aux graphiques, R shiny permet de construire des environnements de tableaux de bords et de graphiques interactifs. 4.1.1. Apparence Les applications Shiny peuvent être exécutée dans une fenêtre R studio ou dans une interface web. ## aide: install.packages("shiny") L’exemple ci-dessous est l’un des 11 built-in exemple du package library(shiny) runExample("01_hello")
  26. IV. Techniques Avancées 1. R shiny  Ui: qui definit l’interface utilisateur  Server: qui precise le fonctionnement de l’application: l’usage des inputs, et l’obtention des outputs  L’applel de la fonction shinyapp ## aide: Cela peut etre executer aussi directement a partir du script app.R dans R studio, via le bouton d’execution. 4.1.2. structure Toute application shiny est contenue dans un seul script nome « app.R ». Le dossier contenant le script donne son nom à l’application. Ce script a 3 composantes 4.1.3. Execution Si le dossier contenant le fichier App.R s’appelle MonApplication, l’application pourra etre executee a l’aide de runApp : Strucuture du script App.R library(shiny) ui <- fluidPage( ) server <- function(input, output) { … } shinyApp(ui = ui, server = server) library(shiny) runApp( "MonApplication"
  27. IV. Techniques Avancées 1. R shiny Rshiny permet de construire des interfaces web d’interaction avec les utilisateurs. Sans se limiter aux graphiques, R shiny permet de construire des environnements de tableaux de bords et de graphiques interactifs. 4.1.1. Apparence Les applications Shiny peuvent être exécutée dans une fenêtre R studio ou dans une interface web. L’exemple ci-dessous est l’un des 11 built-in exemple du package ## aide: install.packages("shiny") library(shiny) runExample("01_hello") ## aide: Dans install.packages("shiny")
  28. IV. Techniques Avancées 1. R shiny 4.1.4. Interface L’UI est constituée de deux éléments principaux le a. Titlepanel b.SidebarLayout : > sidebarPanel fonction d’output > mainPanel fonction d’output ## aide: les tag HTML peuvent être utilisés pour enrichir les textes >img(src = "my_image.png", height = 72, width = 72) ## aide: les tag HTML peuvent être utilisés pour enrichir les textes Des images et contenus media peuvent être intégrés à l’interface à l’aide de la commande img(). Ces images doivent être sauvegardes dans un dossier www sauvegarder à la racine.
  29. IV. Techniques Avancées 1. R shiny 4.1.4. Interface Il est possible de rajouter des contrôles d’input et d’output dans l’interface. Contrôles d’Input Ces contrôles sont crées par les mots clés controleInput et nécessite deux paramètres obligatoires: un nom et un label, et d’autres paramètres en fonction du contrôle. numericInput("Nom"," Label", value = 1) Les noms des contrôles ainsi crées seront utilisés comme input dans la fonction server
  30. IV. Techniques Avancées 1. R shiny 4.1.4. Interface Contrôles Output Ces contrôles sont crées pour renvoyer de la données à l’utilisateur. Ils sont crées en rajoutant dans l’UI des commandes de types ControlOutput. Ces contrôles prennent un seul paramètre le nom de l’output qui sera renvoyé par la fonction server textOutput("Nom")
  31. IV. Techniques Avancées 1. R shiny 4.1.4. Server La fonction server prend deux paramètres: Input et Output. Les composantes de l’objet Output sont tous les noms des contrôles Output crées dans la section UI. Ils sont définis dans la fonction server en utilisant une fonction render*. output$distPlot <- renderPlot ( { x <- faithful$waiting bins <- seq(min(x), max(x), length.out = input$bins + 1) hist(x, breaks = bins, col = "#75AADB", border = "orange", xlab = "Waiting time to next eruption (in mins)", main = "Histogram of waiting times") } Par ailleurs les fonctions render* utilisent en paramètres un ou plusieurs éléments de la liste Input.
Anúncio