Questo codice è tratto dalla Specializzazione di Coursera, Data Science Specialization ed è stato scritto dal Prof. Brian Caffo, della Johns Hopkins University.
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
install.packages("plotly")
library(plotly)
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")
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)
è 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)
data("airmiles")
plot_ly(x = ~time(airmiles), y = ~airmiles, type = "scatter", mode = "lines")
è 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")
è facile anche fare degli istogrammi tramite l’argomento type = "histogram"
plot_ly(x = ~precip, type = "histogram")
si possono creare dei boxplot specificando l’argomento type = "box"
plot_ly(iris, y = ~Petal.Length, color = ~Species, type = "box")
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")
è 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")