gghighlight: Resalta lo Importante en tus Graficos en R

La librería gghighlight te permite resaltar aquellos datos que realmente importan.


Author

Affiliation

Rigoberto Chandomi

 

Published

April 17, 2025

DOI


📌 gghighlight: Resalta lo Importante en tus Gráficos en R ✨📊

🎯 Si trabajas con gráficos complejos en ggplot2 donde muchas curvas o puntos compiten por atención, la librería gghighlight te permite resaltar aquellos datos que realmente importan.

📌 En esta publicación aprenderás a: ✅ Resaltar curvas individuales en gráficos de líneas. ✅ Destacar puntos relevantes en scatter plots. ✅ Utilizar gghighlight con condiciones dinámicas y automáticas.

🧰 Instalación y carga de librerías

#install.packages(c("ggplot2", "gghighlight", "readr", "readxl", "dplyr"))
library(ggplot2)
library(gghighlight)
library(readr)
library(readxl)
library(dplyr)

📈 1. Producción de Pozos: Resaltar una Curva con gghighlight

Resaltaremos la producción de petróleo del pozo HOMOL-1 para compararla visualmente con otros pozos.

# Cargar datos de producción
prod_df <- read_csv("Production_Data.csv")

# Convertir fecha y filtrar solo petróleo
prod_df$Date <- as.Date(prod_df$Date, format = "%d/%m/%Y")
prod_oil <- prod_df %>% filter(Fluid == "Qo")

# Gráfico con gghighlight
ggplot(prod_oil, aes(x = Date, y = Rate, color = Well)) +
  geom_line(size = 0.8) +
  gghighlight(Well == "HOMOL-1") +
  labs(title = "Producción de Petróleo - Pozos HOMOL",
       subtitle = "Resaltando pozo HOMOL-1",
       x = "Fecha", y = "Tasa de Producción (bbl/d)") +
  theme_minimal()

📌 Explicación:

gghighlight(Well == “HOMOL-1”) → Resalta únicamente el pozo deseado.

Ideal para exploraciones rápidas sin necesidad de crear múltiples filtros.

🔍 2. Porosidad vs Permeabilidad: Destacar un Pozo Específico

En este ejemplo usaremos datos de núcleos para crear un scatter plot y resaltar el pozo WELL_3.

# Leer archivo Excel Core_data.csv
core_data <- read_csv("Core_data.csv")

# Gráfico de dispersión
ggplot(core_data, aes(x = POROSITY, y = PERMEABILITY, color = WELL)) +
  geom_point(size = 2) +
  scale_y_log10() + 
  gghighlight(WELL == "2") +
  labs(title = "Relación Porosidad vs Permeabilidad",
       subtitle = "Resaltando datos del pozo WELL_2",
       x = "Porosidad", y = "Permeabilidad (mD)") +
  theme_minimal()

📌 Explicación:

geom_point() → Scatter plot tradicional.

gghighlight() → Enfatiza un subconjunto sin alterar el resto del gráfico.

🧪 3. Destacar Condiciones Automáticas

gghighlight también puede resaltar de forma automática las curvas con mayor valor máximo de producción.

# Crear gráfico resaltando automáticamente curvas con máximo Rate > 8000
ggplot(prod_oil, aes(x = Date, y = Rate, group = Well, color = Well)) +
  geom_line() +
  gghighlight(max(Rate) > 8000, use_direct_label = TRUE) +
  labs(title = "Pozos con Producción Máxima > 8000 bbl/d",
       x = "Fecha", y = "Producción (bbl/d)") +
  theme_minimal()

📌 Explicación:

max(Rate) > 8000 → Condición evaluada por grupo.

use_direct_label = TRUE → Añade etiquetas automáticamente a las líneas resaltadas.

✅ Conclusiones

🔹 gghighlight simplifica la visualización de grandes volúmenes de datos permitiendo enfocar la atención del lector en lo que realmente importa.

🔹 Útil en proyectos con múltiples pozos, propiedades petrofísicas o resultados de simulaciones.