Cours Théorique
La SG-SERVICE
2024-11-07

INTRODUCTION

Plotly est une bibliothèque open-source de visualisation de données interactive, très populaire en data science et en ingénierie de données. En R, plotly s’intègre particulièrement bien avec , ce qui permet de rendre interactifs les graphiques créés avec . Cette interactivité est idéale pour explorer visuellement les données, identifier des tendances, ou capturer des insights de manière plus immersive.

POURQUOI UTILISER PLOTLY ?

INSTALLATION ET CHARGEMENT

Avant d’utiliser plotly, il est nécessaire de l’installer. Cela peut être fait à partir du CRAN avec la commande suivante :

# Installation du package plotly
install.packages("plotly")

Une fois le package installé, il suffit de le charger dans votre session R :

# Chargement du package plotly
library(plotly)

CONCEPTS DE BASE DE PLOTLY

plotly fonctionne principalement avec deux types d’objets :

FONCTIONS PRINCIPALES DE PLOTLY

Les fonctions de plotly peuvent être catégorisées selon les types de graphiques que vous souhaitez créer :

EXEMPLE 1 : Nuage de points simple

# Création de données
data <- data.frame(x = rnorm(100), y = rnorm(100))

# Graphique avec plot_ly
fig <- plot_ly(data, x = ~x, y = ~y, type = "scatter", 
                                mode = "markers") %>%
       layout(title = "Nuage de points interactif")
fig

EXEMPLE 2 : Nuage de points avec des catégories

#Création data
data <- data.frame(x = rnorm(100), y = rnorm(100),
  category = sample(c("A", "B", "C"), 100, replace = TRUE))

# Graphique avec couleurs pour chaque catégorie
fig <- plot_ly(data, x = ~x, y = ~y, color = ~category,
               type = "scatter", mode = "markers") %>%
        layout(title = "Nuage de points par catégorie")
fig

EXEMPLE 3 : Graphique en barre vertical

# Création de données
data <- data.frame(
  category = c("Catégorie A", "Catégorie B", "Catégorie C"),
  values = c(23, 17, 35))
# Graphique en barre
fig <- plot_ly(data, x = ~category, y = ~values
                              , type = "bar") %>%
  layout(title = "Graphique en barre interactif")
fig

EXEMPLE 4 : Graphique en barre horizontal

# Création de données
data <- data.frame(
  category = c("Catégorie A", "Catégorie B", "Catégorie C"),
  values = c(23, 17, 35))
fig <- plot_ly(data, y = ~category, x = ~values, 
              type = "bar", orientation = 'h') %>%
  layout(title = "Graphique en barre horizontal")
fig

EXEMPLE 5 : Graphiques en Boîte (Box Plot)

# Création de données
data <- data.frame(
  group = rep(c("Groupe A", "Groupe B"), each = 50),
  values = c(rnorm(50, mean = 5), rnorm(50, mean = 7)))
# Graphique en boîte
fig <- plot_ly(data, y = ~values, color = ~group, 
                               type = "box") %>%
  layout(title = "Graphique en boîte interactif")
fig

EXEMPLE 6 : Nuage de Points 3D

# Création de données
data <- data.frame(
  x = rnorm(100), y = rnorm(100), z = rnorm(100))

# Nuage de points 3D
fig <- plot_ly(data, x = ~x, y = ~y, z = ~z, 
          type = "scatter3d", mode = "markers") %>%
    layout(title = "Nuage de points 3D interactif")
fig

EXEMPLE 7 : Surface 3D

# Création de données pour la surface
z <- outer(seq(-10, 10, length.out = 100), seq(-10, 10,
length.out = 100), function(x, y) sin(sqrt(x^2 + y^2)))

# Surface 3D
fig <- plot_ly(z = ~z, type = "surface") %>%
  layout(title = "Surface 3D interactive")
fig

EXEMPLE 8 : Carte Choroplèthe

# Exemple de carte du monde
data <- data.frame(
  country = c("France", "Germany", "United Kingdom"),
  values = c(100, 200, 150))
fig <- plot_ly(
  data, type = "choropleth", locations = ~country,
  locationmode = "country names",
  z = ~values,text = ~country,
  colorscale = "Viridis") %>%
  layout(title = "Carte Choroplèthe")
fig

EXEMPLE 9 : Graphique ggplot2 Converti

# Charger les bibliothèques nécessaires
library(ggplot2)
library(plotly)

# Exemple de données
data <- data.frame(
  x = rnorm(100),
  y = rnorm(100),
  category = sample(c("A", "B", "C"), 100, replace = TRUE)
)

# Créer le graphique ggplot2
p <- ggplot(data, aes(x = x, y = y, color = category)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Graphique interactif avec ggplotly",
       x = "Axe X",
       y = "Axe Y",
       color = "Catégorie")

# Convertir en graphique interactif avec ggplotly
fig <- ggplotly(p)
fig