Introducció
En aquest tema, aprendrem a crear visualitzacions interactives utilitzant la llibreria plotly
en R. plotly
és una eina poderosa que permet crear gràfics interactius que poden ser explorats i manipulats pels usuaris. Aquest tipus de visualitzacions són especialment útils per a la presentació de dades en entorns web o per a la creació de dashboards interactius.
Instal·lació i Configuració
Abans de començar, necessitem instal·lar la llibreria plotly
. Pots fer-ho executant el següent codi en la consola de R:
Després, carrega la llibreria:
Creació de Gràfics Bàsics amb plotly
Gràfic de Dispersió
Comencem amb un exemple senzill: un gràfic de dispersió. Utilitzarem el conjunt de dades mtcars
que ve inclòs amb R.
# Carregar les dades data(mtcars) # Crear un gràfic de dispersió fig <- plot_ly(data = mtcars, x = ~wt, y = ~mpg, type = 'scatter', mode = 'markers') # Mostrar el gràfic fig
Explicació del codi:
plot_ly()
: Funció principal per crear gràfics amb plotly.data = mtcars
: Especifica el conjunt de dades a utilitzar.x = ~wt
: Defineix la variable per l'eix X (pes del cotxe).y = ~mpg
: Defineix la variable per l'eix Y (milles per galó).type = 'scatter'
: Especifica el tipus de gràfic (dispersió).mode = 'markers'
: Especifica que només es mostrin els punts (sense línies).
Gràfic de Barres
Ara crearem un gràfic de barres utilitzant el mateix conjunt de dades.
# Crear un gràfic de barres fig <- plot_ly(data = mtcars, x = ~factor(cyl), y = ~mpg, type = 'bar') # Mostrar el gràfic fig
Explicació del codi:
x = ~factor(cyl)
: Converteix la variablecyl
(nombre de cilindres) en un factor per crear barres separades per cada categoria.
Personalització de Gràfics
Afegir Títols i Etiquetes
Podem afegir títols i etiquetes als nostres gràfics per fer-los més informatius.
fig <- plot_ly(data = mtcars, x = ~wt, y = ~mpg, type = 'scatter', mode = 'markers') %>% layout(title = 'Relació entre Pes i Milles per Galó', xaxis = list(title = 'Pes (milers de lliures)'), yaxis = list(title = 'Milles per Galó')) fig
Explicació del codi:
layout()
: Funció per personalitzar l'aparença del gràfic.title
: Títol del gràfic.xaxis
iyaxis
: Llistes que defineixen les etiquetes dels eixos X i Y respectivament.
Afegir Traces
Podem afegir múltiples traces (sèries de dades) a un mateix gràfic.
fig <- plot_ly(data = mtcars, x = ~wt, y = ~mpg, type = 'scatter', mode = 'markers', name = 'Milles per Galó') %>% add_trace(y = ~hp, mode = 'markers', name = 'Cavalls de Força') fig
Explicació del codi:
add_trace()
: Funció per afegir una nova sèrie de dades al gràfic.name
: Nom de la sèrie de dades que apareixerà a la llegenda.
Gràfics Interactius Avançats
Gràfic de Línies Interactiu
Crearem un gràfic de línies interactiu per mostrar l'evolució de les vendes al llarg del temps.
# Crear dades d'exemple set.seed(123) dates <- seq(as.Date("2020-01-01"), by = "month", length.out = 12) sales <- cumsum(runif(12, min = 50, max = 100)) # Crear un gràfic de línies fig <- plot_ly(x = ~dates, y = ~sales, type = 'scatter', mode = 'lines+markers') %>% layout(title = 'Evolució de les Vendes', xaxis = list(title = 'Data'), yaxis = list(title = 'Vendes')) fig
Explicació del codi:
x = ~dates
: Defineix les dates per l'eix X.y = ~sales
: Defineix les vendes per l'eix Y.mode = 'lines+markers'
: Mostra tant les línies com els punts.
Gràfic de Mapes
Plotly també permet crear mapes interactius. Utilitzarem dades de localització per crear un mapa de bombolles.
# Crear dades d'exemple locations <- data.frame( city = c("Barcelona", "Madrid", "València"), lat = c(41.3851, 40.4168, 39.4699), lon = c(2.1734, -3.7038, -0.3763), population = c(1620343, 3223334, 791413) ) # Crear un mapa de bombolles fig <- plot_ly(locations, lat = ~lat, lon = ~lon, type = 'scattergeo', mode = 'markers', marker = list(size = ~population / 100000, color = 'blue', opacity = 0.6)) %>% layout(title = 'Població de Ciutats Espanyoles', geo = list(scope = 'europe')) fig
Explicació del codi:
lat
ilon
: Defineixen les coordenades de les ciutats.type = 'scattergeo'
: Especifica que es tracta d'un gràfic geogràfic.marker
: Defineix les propietats de les bombolles (mida, color, opacitat).geo
: Defineix les propietats del mapa (en aquest cas, el mapa es centra a Europa).
Exercicis Pràctics
Exercici 1: Gràfic de Dispersió Interactiu
Crea un gràfic de dispersió interactiu utilitzant el conjunt de dades iris
. Mostra la relació entre Sepal.Length
i Sepal.Width
i afegeix una tercera variable Species
com a color.
Solució:
# Carregar les dades data(iris) # Crear un gràfic de dispersió fig <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Sepal.Width, type = 'scatter', mode = 'markers', color = ~Species, colors = c('red', 'green', 'blue')) %>% layout(title = 'Relació entre Longitud i Amplada del Sèpal', xaxis = list(title = 'Longitud del Sèpal'), yaxis = list(title = 'Amplada del Sèpal')) fig
Exercici 2: Gràfic de Barres Apilat
Crea un gràfic de barres apilat utilitzant el conjunt de dades mtcars
. Mostra la distribució de mpg
per cyl
i gear
.
Solució:
# Crear un gràfic de barres apilat fig <- plot_ly(data = mtcars, x = ~factor(cyl), y = ~mpg, type = 'bar', color = ~factor(gear)) %>% layout(title = 'Distribució de Milles per Galó per Cilindres i Marxes', xaxis = list(title = 'Cilindres'), yaxis = list(title = 'Milles per Galó'), barmode = 'stack') fig
Conclusió
En aquest tema, hem après a crear visualitzacions interactives utilitzant la llibreria plotly
en R. Hem vist com crear gràfics de dispersió, barres, línies i mapes, així com personalitzar-los i afegir múltiples traces. Les visualitzacions interactives són una eina poderosa per explorar i presentar dades de manera dinàmica i atractiva. En el proper mòdul, aprofundirem en l'anàlisi estadística amb R.
Programació en R: De Principiant a Avançat
Mòdul 1: Introducció a R
- Introducció a R i RStudio
- Sintaxi Bàsica de R
- Tipus de Dades i Estructures
- Operacions i Funcions Bàsiques
- Importació i Exportació de Dades
Mòdul 2: Manipulació de Dades
- Vectors i Llistes
- Matrius i Arrays
- Data Frames
- Factors
- Manipulació de Dades amb dplyr
- Manipulació de Cadenes
Mòdul 3: Visualització de Dades
- Introducció a la Visualització de Dades
- Gràfics Base de R
- Conceptes Bàsics de ggplot2
- ggplot2 Avançat
- Visualitzacions Interactives amb plotly
Mòdul 4: Anàlisi Estadística
- Estadístiques Descriptives
- Distribucions de Probabilitat
- Proves d'Hipòtesi
- Correlació i Regressió
- ANOVA i Proves de Chi-Cuadrat
Mòdul 5: Gestió Avançada de Dades
- Gestió de Dates i Hores
- Reestructuració de Dades
- Treballant amb Grans Conjunts de Dades
- Web Scraping
- APIs i JSON
Mòdul 6: Conceptes Avançats de Programació
- Escriure Funcions
- Depuració i Gestió d'Errors
- Programació Orientada a Objectes en R
- Programació Funcional
- Computació Paral·lela
Mòdul 7: Aprenentatge Automàtic amb R
- Introducció a l'Aprenentatge Automàtic
- Preprocessament de Dades
- Aprenentatge Supervisat
- Aprenentatge No Supervisat
- Avaluació i Ajust de Models
Mòdul 8: Temes Especialitzats
- Anàlisi de Sèries Temporals
- Anàlisi de Dades Espacials
- Mineria de Text i Processament del Llenguatge Natural
- Bioinformàtica amb R
- Anàlisi de Dades Financeres