🔥 ggplot2 es una de las librerías más poderosas para visualización de datos en R.
En este análisis, exploraremos la producción de petróleo y gas con gráficos avanzados.
📌 En esta publicación aprenderás a:
✅ Graficar gastos de producción cde aceite on ggplot2.
✅ Usar facetas y escalas logarítmicas para analizar tendencias.
✅ Personalizar gráficos para mejorar su interpretación.
🟢 Instalación y Carga de Librerías
Ver código
# Instalamos y cargamos las librerías necesarias.#install.packages("ggplot2")#install.packages("dplyr")#install.packages("lubridate")#install.packages("readr")#install.packages("scales")library(ggplot2)library(dplyr)library(lubridate)library(readr)library(scales)
Cargar los Datos de Producción
Para este ejemplo disponemos de datos de gastos de aceite, agua y gas para cada pozo, los cuales se encuentran ordenados en 4 columnas: Pozo, Fluido, Fecha y Gasto
Ver código
# Cargamos los datos del archivo Production_Data.csv.file_path <-"Production_Data.csv"df <-read.csv(file_path)# Convertimos la columna de fecha al formato adecuadodf$Date <-dmy(df$Date)# Exploramos los datos disponibleshead(df)
Well Fluid Date Rate
Length:6192 Length:6192 Min. :2007-01-01 Min. : 0
Class :character Class :character 1st Qu.:2010-07-24 1st Qu.: 0
Mode :character Mode :character Median :2014-02-15 Median : 0
Mean :2014-02-14 Mean : 2112
3rd Qu.:2017-09-08 3rd Qu.: 4539
Max. :2021-04-01 Max. :15992
🟢 Primer Ejemplo: Gráfico de Producción de Petróleo y Gas
Antes de generar un gráfico de líneas de gastos de aceite, agua y gas vamos a filtrar los datos del pozo HOMOL-1
Ver código
# Creamos un gráfico de líneas mostrando la producción a lo largo del tiempo.df_homol <- df %>%filter(Well =="HOMOL-1")ggplot(df_homol, aes(x = Date, y = Rate, color = Fluid)) +geom_line(linewidth =1, position ="identity") +labs(title ="Producción de Petróleo y Gas a lo Largo del Tiempo",subtitle ="Datos de producción del pozo HOMOL-1",x ="Fecha", y ="Tasa de Producción (bbl/d o Mcf/d)") +scale_y_continuous(labels = comma) +theme_minimal()
📌 Explicación: 🔹 geom_line() → Crea una línea para visualizar tendencias. 🔹 color = Fluid → Diferencia entre petróleo, gas y agua. 🔹 scale_y_continuous(labels = comma) → Formatea los números con comas.
🟢 Segundo Ejemplo: Producción de Pozos con Facetas
Usamos facetas para visualizar la producción de cada pozo individualmente.
Ver código
ggplot(df, aes(x = Date, y = Rate, color = Fluid)) +geom_line(linewidth =1) +facet_wrap(~ Well, scales ="free_y") +labs(title ="Producción de Pozos Individuales",subtitle ="Análisis por pozo",x ="Fecha", y ="Tasa de Producción") +theme_light()
📌 Explicación: 🔹 facet_wrap(~ Well) → Crea gráficos individuales para cada pozo. 🔹 scales = “free_y” → Permite diferentes escalas en cada faceta.
🟢 Tercer Ejemplo: Uso de Escalas Logarítmicas
Cambiar la escala de los ejes a logarítmica nos permite visualizar diferentes tendencias
Ver código
# Usamos escalas logarítmicas para visualizar diferencias extremas en producción.ggplot(df, aes(x = Date, y = Rate +1, color = Fluid)) +geom_line(linewidth =1) +facet_wrap(~ Well, scales ="free_y")+scale_y_log10(labels = comma) +labs(title ="Producción en Escala Logarítmica",subtitle ="Comparación de producción en distintos órdenes de magnitud",x ="Fecha", y ="Producción (log10)") +theme_bw()
📌 Explicación: 🔹 scale_y_log10() → Usa escala logarítmica para mejorar la visualización. 🔹 +1 en la variable Rate → Evita problemas con valores cero en logaritmos.
🟢 Cuarto Ejemplo: Gráfico a nivel de campo .
Agrupamos los datos por Date y Fluid usando group_by(Date, Fluid).
Sumamos la tasa de producción para cada fluido (Qg, Qo, Qw) con sum(Rate, na.rm = TRUE).
Graficamos los resultados con geom_line() para mostrar la evolución de la producción total en el tiempo.
Este gráfico te mostrará cómo ha cambiado la producción total del campo a lo largo del tiempo, desglosada por fluido (petróleo, gas y agua).
Ver código
# Agrupar datos por fecha y sumar tasas de produccióndf_campo <- df %>%group_by(Date, Fluid) %>%summarise(Total_Rate =sum(Rate, na.rm =TRUE), .groups ="drop")# Gráfico de líneas para la producción total del campoggplot(df_campo, aes(x = Date, y = Total_Rate, color = Fluid, group = Fluid)) +geom_line(linewidth =1) +labs(title ="Producción Total del Campo",subtitle ="Suma de la producción de todos los pozos",x ="Fecha", y ="Tasa de Producción Total (bbl/d o Mcf/d)") +scale_y_continuous(labels = scales::comma) +theme_minimal()
📌 Explicación: 🔹 group_by(Date, Fluid) %>% summarise(Total_Rate = sum(Rate, na.rm = TRUE)) → Agrupa los datos por fecha y fluido, sumando la producción total. 🔹 geom_line(size = 1) → Usa líneas para visualizar la evolución de la producción en el tiempo. 🔹 scale_y_continuous(labels = scales::comma) → Aplica formato numérico para mejorar la legibilidad. 🔹 theme_minimal() → Utiliza un diseño limpio y profesional para la visualización.
🟢 Conclusión 🎯
🔹 ggplot2 es una herramienta poderosa para analizar tendencias en producción de petróleo y gas. 🔹 Facetas permiten analizar pozos de manera individual sin perder contexto. 🔹 Escalas logarítmicas ayudan a visualizar datos con diferencias extremas.
🟢 Recursos Adicionales 📚
📌 Documentación Oficial: https://ggplot2.tidyverse.org/ 📌 Visualización de Datos en R: https://datavizcatalogue.com/