Questo codice è tratto dalla Specializzazione di Coursera, Data Science Specialization ed è stato scritto dal Prof. Brian Caffo, della Johns Hopkins University.

Cos’è Plotly

Plotly è un’applicazione web che permette di creare e condividere grafici interattivi.
Plotly funziona con diversi linguaggi di programmazione con R, Python e Microsoft Excel In questo tutorial vi mostrerò le basi per la creazione di grafici interattivi utilizzando R

Installare Plotly

install.packages("plotly")
library(plotly)

Scatterplot

Per creare uno “scatterplot” basta indicare type = "scatter". Gli argomenti per la x e la y sono specificati come formule tramite l’operatore tilde (~)

library(plotly)
plot_ly(mtcars, x = ~wt, y = ~mpg, type = "scatter")

Scatterplot Colorato

Si possono aggiungere i colori, sulla base di una variabile categoriale

plot_ly(mtcars, x = ~wt, y = ~mpg, type = "scatter", color = ~factor(cyl))

Oppure in base ad una variabile continua

plot_ly(mtcars, x = ~wt, y = ~mpg, type = "scatter", color = ~disp)

è possibile anche specificare la grandezza dei punti in base ad una variabile

plot_ly(mtcars, x = ~wt, y = ~mpg, type = "scatter", 
        color = ~factor(cyl), size = ~hp)

3D Scatterplot

è possibile creare uno scatterplot 3D specificando type = "scatter3d" il grafico può essere anche ruotato

set.seed(2018-01-23)
temp <- rnorm(100, mean = 30, sd = 5)
pressue <- rnorm(100)
dtime <- 1:100
plot_ly(x = ~temp, y = ~pressue, z = ~dtime,
        type = "scatter3d", color = ~temp)

Line Graph

data("airmiles")
plot_ly(x = ~time(airmiles), y = ~airmiles, type = "scatter", mode = "lines")

Multi Line Graph

è possibile anche visualizzare più linee specificando la colonna del data frame che separa le linee

library(plotly)
library(tidyr)
library(dplyr)
data("EuStockMarkets")

stocks <- as.data.frame(EuStockMarkets) %>%
  gather(index, price) %>%
  mutate(time = rep(time(EuStockMarkets), 4))

plot_ly(stocks, x = ~time, y = ~price, color = ~index, type = "scatter", mode = "lines")

Istogramma

è facile anche fare degli istogrammi tramite l’argomento type = "histogram"

plot_ly(x = ~precip, type = "histogram")

Boxplot

si possono creare dei boxplot specificando l’argomento type = "box"

plot_ly(iris, y = ~Petal.Length, color = ~Species, type = "box")

Heatmap

Le Heatmaps sono utili per visualizzare dati con molteplici dimensioni in 2D (type = "heatmap")

terrain1 <- matrix(rnorm(100*100), nrow = 100, ncol = 100)
plot_ly(z = ~terrain1, type = "heatmap")

Superfici 3D

è possibile anche creare superfici in 3D specificando l’argomento type = "surface".

terrain2 <- matrix(sort(rnorm(100*100)), nrow = 100, ncol = 100)
plot_ly(z = ~terrain2, type = "surface")

Per ulteriori informazioni