Introducció

En aquest estudi de cas, aplicarem els coneixements adquirits sobre visualització de dades per analitzar un conjunt de dades real. Utilitzarem les eines i tècniques apreses en els mòduls anteriors per crear visualitzacions informatives i atractives que ens ajudin a comprendre millor les dades.

Objectius

  1. Importar i explorar el conjunt de dades.
  2. Crear visualitzacions bàsiques i avançades utilitzant ggplot2.
  3. Generar visualitzacions interactives amb plotly.
  4. Interpretar les visualitzacions per extreure conclusions significatives.

Conjunt de Dades

Per aquest estudi de cas, utilitzarem el conjunt de dades diamonds del paquet ggplot2, que conté informació sobre més de 50.000 diamants, incloent-hi el carat, el tall, el color, la claredat, el preu, entre altres característiques.

Passos a Seguir

  1. Importar i Explorar el Conjunt de Dades

Primer, importarem el conjunt de dades i farem una exploració inicial per comprendre la seva estructura i contingut.

# Carregar els paquets necessaris
library(ggplot2)
library(dplyr)
library(plotly)

# Carregar el conjunt de dades
data("diamonds")

# Exploració inicial
head(diamonds)
summary(diamonds)

Explicació:

  • library(ggplot2), library(dplyr), library(plotly): Carreguem els paquets necessaris.
  • data("diamonds"): Carreguem el conjunt de dades diamonds.
  • head(diamonds): Mostrem les primeres files del conjunt de dades.
  • summary(diamonds): Proporcionem un resum estadístic de les variables del conjunt de dades.

  1. Crear Visualitzacions Bàsiques amb ggplot2

Histogram de Preus

# Histogram de preus
ggplot(diamonds, aes(x = price)) +
  geom_histogram(binwidth = 500, fill = "blue", color = "black") +
  labs(title = "Distribució de Preus dels Diamants", x = "Preu", y = "Compte")

Explicació:

  • ggplot(diamonds, aes(x = price)): Inicialitzem el gràfic amb el conjunt de dades diamonds i especifiquem que la variable price serà l'eix X.
  • geom_histogram(binwidth = 500, fill = "blue", color = "black"): Creem un histogram amb una amplada de bin de 500, color de farciment blau i contorn negre.
  • labs(title = "Distribució de Preus dels Diamants", x = "Preu", y = "Compte"): Afegim títol i etiquetes als eixos.

Gràfic de Dispersió de Carat vs. Preu

# Gràfic de dispersió de carat vs. preu
ggplot(diamonds, aes(x = carat, y = price)) +
  geom_point(alpha = 0.5, color = "darkgreen") +
  labs(title = "Carat vs. Preu dels Diamants", x = "Carat", y = "Preu")

Explicació:

  • ggplot(diamonds, aes(x = carat, y = price)): Inicialitzem el gràfic amb el conjunt de dades diamonds i especifiquem que les variables carat i price seran els eixos X i Y respectivament.
  • geom_point(alpha = 0.5, color = "darkgreen"): Creem un gràfic de dispersió amb punts de color verd fosc i una transparència del 50%.
  • labs(title = "Carat vs. Preu dels Diamants", x = "Carat", y = "Preu"): Afegim títol i etiquetes als eixos.

  1. Crear Visualitzacions Avançades amb ggplot2

Boxplot de Preu per Tall

# Boxplot de preu per tall
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  labs(title = "Preu dels Diamants per Tall", x = "Tall", y = "Preu") +
  theme(legend.position = "none")

Explicació:

  • ggplot(diamonds, aes(x = cut, y = price, fill = cut)): Inicialitzem el gràfic amb el conjunt de dades diamonds i especifiquem que les variables cut i price seran els eixos X i Y respectivament, i que el color de farciment serà segons el tall.
  • geom_boxplot(): Creem un boxplot.
  • labs(title = "Preu dels Diamants per Tall", x = "Tall", y = "Preu"): Afegim títol i etiquetes als eixos.
  • theme(legend.position = "none"): Eliminem la llegenda.

Gràfic de Barres Apilat de Color per Tall

# Gràfic de barres apilat de color per tall
ggplot(diamonds, aes(x = cut, fill = color)) +
  geom_bar(position = "fill") +
  labs(title = "Distribució de Color per Tall", x = "Tall", y = "Proporció") +
  scale_y_continuous(labels = scales::percent)

Explicació:

  • ggplot(diamonds, aes(x = cut, fill = color)): Inicialitzem el gràfic amb el conjunt de dades diamonds i especifiquem que la variable cut serà l'eix X i el color de farciment serà segons el color.
  • geom_bar(position = "fill"): Creem un gràfic de barres apilat.
  • labs(title = "Distribució de Color per Tall", x = "Tall", y = "Proporció"): Afegim títol i etiquetes als eixos.
  • scale_y_continuous(labels = scales::percent): Convertim l'eix Y a percentatges.

  1. Generar Visualitzacions Interactives amb plotly

Gràfic de Dispersió Interactiu

# Gràfic de dispersió interactiu
p <- ggplot(diamonds, aes(x = carat, y = price, text = paste("Color:", color))) +
  geom_point(alpha = 0.5, color = "darkgreen") +
  labs(title = "Carat vs. Preu dels Diamants", x = "Carat", y = "Preu")

ggplotly(p)

Explicació:

  • ggplot(diamonds, aes(x = carat, y = price, text = paste("Color:", color))): Inicialitzem el gràfic amb el conjunt de dades diamonds i especifiquem que les variables carat i price seran els eixos X i Y respectivament, i afegim una etiqueta de text amb el color.
  • geom_point(alpha = 0.5, color = "darkgreen"): Creem un gràfic de dispersió amb punts de color verd fosc i una transparència del 50%.
  • labs(title = "Carat vs. Preu dels Diamants", x = "Carat", y = "Preu"): Afegim títol i etiquetes als eixos.
  • ggplotly(p): Convertim el gràfic ggplot2 en un gràfic interactiu amb plotly.

  1. Interpretació de les Visualitzacions

  • Distribució de Preus dels Diamants: L'histogram mostra que la majoria dels diamants tenen un preu inferior a 5000 dòlars, amb una distribució asimètrica cap a la dreta.
  • Carat vs. Preu dels Diamants: El gràfic de dispersió indica una relació positiva entre el carat i el preu, és a dir, a mesura que augmenta el carat, també ho fa el preu.
  • Preu dels Diamants per Tall: El boxplot revela que els diamants amb tall "Ideal" tendeixen a tenir preus més alts, mentre que els de tall "Fair" tenen preus més baixos.
  • Distribució de Color per Tall: El gràfic de barres apilat mostra que els talls "Ideal" i "Premium" tenen una major proporció de diamants amb colors més clars (D, E, F).

Exercicis Pràctics

  1. Crear un gràfic de dispersió de depth vs. price i afegir una línia de regressió.
  2. Generar un gràfic de barres de la distribució de clarity i interpretar els resultats.
  3. Crear una visualització interactiva que mostri la relació entre carat, price i cut.

Solucions

Exercici 1

# Gràfic de dispersió de depth vs. price amb línia de regressió
ggplot(diamonds, aes(x = depth, y = price)) +
  geom_point(alpha = 0.5, color = "purple") +
  geom_smooth(method = "lm", color = "red") +
  labs(title = "Depth vs. Preu dels Diamants", x = "Depth", y = "Preu")

Exercici 2

# Gràfic de barres de la distribució de clarity
ggplot(diamonds, aes(x = clarity)) +
  geom_bar(fill = "orange", color = "black") +
  labs(title = "Distribució de Clarity dels Diamants", x = "Clarity", y = "Compte")

Exercici 3

# Visualització interactiva de carat, price i cut
p <- ggplot(diamonds, aes(x = carat, y = price, color = cut, text = paste("Cut:", cut))) +
  geom_point(alpha = 0.5) +
  labs(title = "Carat vs. Preu dels Diamants per Tall", x = "Carat", y = "Preu")

ggplotly(p)

Conclusió

En aquest estudi de cas, hem aplicat diverses tècniques de visualització de dades per analitzar el conjunt de dades diamonds. Hem creat visualitzacions bàsiques i avançades amb ggplot2 i visualitzacions interactives amb plotly. Aquestes visualitzacions ens han permès extreure conclusions significatives sobre les característiques i els preus dels diamants. Ara estàs preparat per aplicar aquestes tècniques a altres conjunts de dades i projectes.

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