GGPLOT: Comment Créer un Diagramme de Dispersion type 3D avec Plotly



GGPLOT: Comment Créer un Diagramme de Dispersion type 3D avec Plotly

Dans cet article, vous apprendrez comment créer un nuage de points ggplot-like en 3D à l’aide du package R plotly.

Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

Prérequis

Charger les packages R requis

library(tidyverse)
library(plotly)

Préparation des données:

df <- mtcars %>%
  rownames_to_column() %>%
  as_data_frame() %>%
  mutate(am = ifelse(am == 0, "Automatic", "Manual")) %>%
  mutate(am = as.factor(am))
df
## # A tibble: 32 x 12
##   rowname   mpg   cyl  disp    hp  drat    wt  qsec    vs am     gear  carb
##   <chr>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <fct> <dbl> <dbl>
## 1 Mazda …  21       6   160   110  3.9   2.62  16.5     0 Manu…     4     4
## 2 Mazda …  21       6   160   110  3.9   2.88  17.0     0 Manu…     4     4
## 3 Datsun…  22.8     4   108    93  3.85  2.32  18.6     1 Manu…     4     1
## 4 Hornet…  21.4     6   258   110  3.08  3.22  19.4     1 Auto…     3     1
## 5 Hornet…  18.7     8   360   175  3.15  3.44  17.0     0 Auto…     3     2
## 6 Valiant  18.1     6   225   105  2.76  3.46  20.2     1 Auto…     3     1
## # … with 26 more rows

Diagramme de dispersion 3D basique

# Créer le graphique
p <- plot_ly(
  df, x = ~wt, y = ~hp, z = ~qsec, 
  color = ~am, colors = c('#BF382A', '#0C4B8E')
  ) %>%
  add_markers() %>%
  layout(
    scene = list(xaxis = list(title = 'Weight'),
        yaxis = list(title = 'Gross horsepower'),
        zaxis = list(title = '1/4 mile time'))
        )
p

Diagramme de dispersion 3D avec Coloration

Les marqueurs de points seront colorés en fonction de la variable mpg:

# Couleurs des points
marker <- list(color = ~mpg, colorscale = c('#FFE1A1', '#683531'), 
              showscale = TRUE)
# Créer le graphique
p <- plot_ly(df, x = ~wt, y = ~hp, z = ~qsec, marker = marker) %>%
  add_markers() %>%
  layout(
    scene = list(xaxis = list(title = 'Weight'),
        yaxis = list(title = 'Gross horsepower'),
        zaxis = list(title = '1/4 mile time'))
        )
p



Version: English





No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments