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:

install.packages("plotly")

Després, carrega la llibreria:

library(plotly)

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 variable cyl (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 i yaxis: 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 i lon: 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

Mòdul 2: Manipulació de Dades

Mòdul 3: Visualització de Dades

Mòdul 4: Anàlisi Estadística

Mòdul 5: Gestió Avançada de Dades

Mòdul 6: Conceptes Avançats de Programació

Mòdul 7: Aprenentatge Automàtic amb R

Mòdul 8: Temes Especialitzats

Mòdul 9: Projecte i Estudis de Cas

© Copyright 2024. Tots els drets reservats