##El conjunto de datos ofrece estadísticas mensuales de electricidad recopiladas por la Agencia Internacional de Energía (AIE) para diversos países y territorios alrededor del mundo. Cubre la generación de electricidad mensual desde 2010 hasta 2022 y reporta la producción en gigavatios-hora (GWh). Incluye una amplia gama de fuentes de energía, como hidroeléctrica, eólica, solar, geotérmica, nuclear, combustibles fósiles, entre otras. Estos datos son valiosos para analizar las tendencias globales y regionales en el consumo y producción de electricidad, así como para evaluar el impacto ambiental del sector eléctrico.
#VARIABLES
##COUNTRY: Nombre del país
##CODE_TIME: Un código que representa el mes y año (por ejemplo, JAN2010 para enero de 2010)
##TIME: El mes y año en un formato más legible para los humanos (por ejemplo, enero de 2010)
##YEAR: El año del dato
##MONTH: El mes del dato como un número (1-12)
##MONTH_NAME: El mes del dato como una cadena (por ejemplo, enero)
##PRODUCT: El tipo de producto energético (por ejemplo, Hidroeléctrica, Eólica, Solar)
##VALUE: La cantidad de electricidad generada en gigavatios-hora (GWh)
##DISPLAY_ORDER: El orden en el que se deben mostrar los productos
##yearToDate: La cantidad de electricidad generada para el año actual hasta el mes actual en GWh
##previousYearToDate: La cantidad de electricidad generada para el año anterior hasta el mes actual en GWh
##share: La participación del producto en la generación total de electricidad para el país en formato decimal.
library(readr)
df <- read_csv("dataset_energy.csv")
## Rows: 47159 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): COUNTRY, CODE_TIME, TIME, MONTH_NAME, PRODUCT
## dbl (7): YEAR, MONTH, VALUE, DISPLAY_ORDER, yearToDate, previousYearToDate, ...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df
## # A tibble: 47,159 × 12
## COUNTRY CODE_TIME TIME YEAR MONTH MONTH_NAME PRODUCT VALUE DISPLAY_ORDER
## <chr> <chr> <chr> <dbl> <dbl> <chr> <chr> <dbl> <dbl>
## 1 Argentina JAN2020 Janu… 2020 1 January Hydro 2393. 1
## 2 Argentina JAN2020 Janu… 2020 1 January Wind 677. 2
## 3 Argentina JAN2020 Janu… 2020 1 January Solar 106. 3
## 4 Argentina JAN2020 Janu… 2020 1 January Geothe… 0 4
## 5 Argentina JAN2020 Janu… 2020 1 January Other … 0 5
## 6 Argentina JAN2020 Janu… 2020 1 January Nuclear 795. 6
## 7 Argentina JAN2020 Janu… 2020 1 January Total … 8492. 7
## 8 Argentina JAN2020 Janu… 2020 1 January Coal 61.3 8
## 9 Argentina JAN2020 Janu… 2020 1 January Oil 901. 9
## 10 Argentina JAN2020 Janu… 2020 1 January Natura… 7415. 10
## # ℹ 47,149 more rows
## # ℹ 3 more variables: yearToDate <dbl>, previousYearToDate <dbl>, share <dbl>
dim(df)
## [1] 47159 12
head(df)
## # A tibble: 6 × 12
## COUNTRY CODE_TIME TIME YEAR MONTH MONTH_NAME PRODUCT VALUE DISPLAY_ORDER
## <chr> <chr> <chr> <dbl> <dbl> <chr> <chr> <dbl> <dbl>
## 1 Argentina JAN2020 Januar… 2020 1 January Hydro 2393. 1
## 2 Argentina JAN2020 Januar… 2020 1 January Wind 677. 2
## 3 Argentina JAN2020 Januar… 2020 1 January Solar 106. 3
## 4 Argentina JAN2020 Januar… 2020 1 January Geothe… 0 4
## 5 Argentina JAN2020 Januar… 2020 1 January Other … 0 5
## 6 Argentina JAN2020 Januar… 2020 1 January Nuclear 795. 6
## # ℹ 3 more variables: yearToDate <dbl>, previousYearToDate <dbl>, share <dbl>
# Número de filas y columnas
dim(df)
## [1] 47159 12
# Solo número de filas
nrow(df)
## [1] 47159
# Solo número de columnas
ncol(df)
## [1] 12
# Número de valores nulos por columna
colSums(is.na(df))
## COUNTRY CODE_TIME TIME YEAR
## 0 0 0 0
## MONTH MONTH_NAME PRODUCT VALUE
## 0 0 0 0
## DISPLAY_ORDER yearToDate previousYearToDate share
## 0 0 230 0
# Para obtener un resumen estadístico de cada columna
summary(df)
## COUNTRY CODE_TIME TIME YEAR
## Length:47159 Length:47159 Length:47159 Min. :2020
## Class :character Class :character Class :character 1st Qu.:2020
## Mode :character Mode :character Mode :character Median :2021
## Mean :2021
## 3rd Qu.:2022
## Max. :2022
##
## MONTH MONTH_NAME PRODUCT VALUE
## Min. : 1.000 Length:47159 Length:47159 Min. : -4745.4
## 1st Qu.: 3.000 Class :character Class :character 1st Qu.: 41.6
## Median : 6.000 Mode :character Mode :character Median : 653.4
## Mean : 6.494 Mean : 19007.5
## 3rd Qu.: 9.000 3rd Qu.: 4399.8
## Max. :12.000 Max. :1001528.9
##
## DISPLAY_ORDER yearToDate previousYearToDate share
## Min. : 1.0 Min. : -43970 Min. : -43970 Min. :-3.07008
## 1st Qu.: 8.0 1st Qu.: 522 1st Qu.: 225 1st Qu.: 0.00759
## Median :14.0 Median : 8150 Median : 3602 Median : 0.07696
## Mean :14.2 Mean : 228090 Mean : 123652 Mean : 0.27777
## 3rd Qu.:21.0 3rd Qu.: 52784 3rd Qu.: 25793 3rd Qu.: 0.47476
## Max. :27.0 Max. :10799491 Max. :10719428 Max. : 4.07008
## NA's :230
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(viridis)
## Loading required package: viridisLite
# Ordenar los productos según el valor promedio
order <- df %>%
group_by(PRODUCT) %>%
summarise(mean_value = mean(VALUE, na.rm = TRUE)) %>%
arrange(desc(mean_value)) %>%
pull(PRODUCT)
# Crear el gráfico
ggplot(df, aes(x = VALUE, y = factor(PRODUCT, levels = order))) +
geom_bar(stat = "summary", fun = "mean", aes(fill = PRODUCT), color = "black") +
labs(
title = "Cantidad de energía clasificada según tipo",
x = "Cantidad de Energía [GWh]",
y = "Tipo de energía"
) +
scale_fill_viridis_d(option = "C") + # Paleta de colores adecuada
theme_minimal(base_size = 10) +
theme(plot.title = element_text(hjust = 0.5))
##El análisis visualiza la cantidad promedio de energía generada por
diferentes tipos de productos energéticos. Los productos se ordenan de
mayor a menor según su valor promedio de generación, representados
mediante un gráfico de barras. La paleta de colores viridis mejora la
distinción entre categorías, y el estilo minimalista del gráfico
facilita su interpretación. Esta visualización permite identificar qué
tipos de energía tienen mayor relevancia en términos de generación
promedio.
library(ggplot2)
library(dplyr)
# Filtrar el DataFrame para obtener solo 'Net electricity production'
df_net <- df %>%
filter(PRODUCT == 'Net electricity production') %>%
na.omit() # Eliminar filas con NA
# Crear el gráfico de puntos y líneas
ggplot(df_net, aes(x = YEAR, y = VALUE)) +
stat_summary(fun = mean, geom = "point", color = "blue", size = 3) +
stat_summary(fun = mean, geom = "line", color = "blue", size = 1) + # Línea para unir los puntos
labs(
title = "Evolución de la Producción Neta de Energía en Colombia (Resolución Anual)",
x = "Año",
y = "Energía Promedio [GWh]"
) +
theme_minimal(base_size = 14) +
theme(plot.title = element_text(hjust = 0.5)) +
scale_x_continuous(breaks = seq(min(df_net$YEAR, na.rm = TRUE),
max(df_net$YEAR, na.rm = TRUE),
by = 1))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
##El gráfico presenta la tendencia de la producción neta de electricidad
a lo largo de los años, utilizando puntos para representar el valor
promedio anual de producción en gigavatios-hora (GWh). Los puntos están
conectados por una línea azul que ilustra el cambio continuo en la
producción neta de electricidad, ayudando a destacar tendencias o
fluctuaciones a lo largo del tiempo. El eje X muestra los años de manera
continua, con intervalos de un año para facilitar la interpretación. El
eje Y muestra la energía promedio producida en gigavatios-hora (GWh)
para la producción neta de electricidad en Colombia.
library(ggplot2)
library(dplyr)
# Filtrar el DataFrame para obtener solo 'Net electricity production'
df_net <- df %>%
filter(PRODUCT == 'Net electricity production') %>%
na.omit() # Eliminar filas con NA
# Asegúrate de que 'MONTH_NAME' sea un factor con el orden correcto
df_net <- df_net %>%
mutate(MONTH_NAME = factor(MONTH_NAME, levels = month.name))
# Crear el gráfico con puntos y líneas que los unen
ggplot(df_net, aes(x = MONTH_NAME, y = VALUE, group = 1)) +
geom_point(stat = "summary", fun = mean, size = 3, color = "blue") +
geom_line(stat = "summary", fun = mean, size = 1, color = "blue") +
labs(
title = "Producción Neta Mensual de Energía en Colombia",
x = "Mes",
y = "Energía Promedio [GWh]"
) +
ylim(5000, 10000) + # Ajustar el límite del eje y
theme_minimal(base_size = 14) +
theme(plot.title = element_text(hjust = 0.9))
## Warning: Removed 1585 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Removed 1585 rows containing non-finite outside the scale range
## (`stat_summary()`).
##El gráfico muestra la producción neta mensual de electricidad en Colombia, destacando la evolución promedio por mes. Los datos se filtran para incluir únicamente la producción neta de electricidad, eliminando valores faltantes. Los meses se ordenan de enero a diciembre en el eje X, mientras que el eje Y se limita entre 5,000 y 10,000 GWh. Puntos y líneas azules representan los valores promedio, facilitando la identificación de fluctuaciones a lo largo del año. El diseño minimalista y limpio mejora la claridad y permite un análisis sencillo de las tendencias mensuales en la producción de energía.
library(dplyr)
# Agrupar por 'PRODUCT' y sumar los valores
matrix <- df %>%
group_by(PRODUCT) %>%
summarise(total_value = sum(VALUE, na.rm = TRUE)) %>% # Asegúrate de que 'VALUE' está correctamente escrito
arrange(desc(total_value))
# Mostrar el resultado
print(matrix)
## # A tibble: 27 × 2
## PRODUCT total_value
## <chr> <dbl>
## 1 Net electricity production 134484902.
## 2 Electricity supplied 134456775.
## 3 Final consumption 121391585.
## 4 Non-renewables 91440198.
## 5 Total combustible fuels 73564745.
## 6 Fossil fuels 69989694.
## 7 Low carbon 64980414.
## 8 Renewables 43044826.
## 9 Natural gas 38366848.
## 10 Coal 28232284.
## # ℹ 17 more rows
library(ggplot2)
library(dplyr)
# Calcular el total por producto
matrix <- df %>%
group_by(PRODUCT) %>%
summarise(total_value = sum(VALUE, na.rm = TRUE)) %>%
arrange(desc(total_value))
# Crear el gráfico de barras
ggplot(matrix, aes(x = reorder(PRODUCT, total_value), y = total_value, fill = PRODUCT)) +
geom_bar(stat = "identity") +
labs(
title = "Matriz energética de Colombia",
x = "Producto",
y = "Cantidad de Energía [GWh]"
) +
theme_minimal() +
theme(
legend.position = "none", # Ocultar la leyenda si es necesario
axis.text.x = element_text(angle = 45, hjust = 1) # Inclinar las etiquetas del eje x
) +
geom_text(aes(label = sprintf("%.0f", total_value)),
position = position_stack(vjust = 0.5),
color = "white", size = 1)
##El gráfico presenta la matriz energética de Colombia, mostrando el
total de energía generada por cada tipo de producto. Los datos se
agrupan y se calculan los valores totales para cada producto energético.
Las barras, ordenadas de mayor a menor, representan la cantidad de
energía en gigavatios-hora (GWh) por producto, con etiquetas que indican
los valores exactos. Las etiquetas del eje X se inclinan para facilitar
la lectura, y el gráfico emplea un diseño minimalista sin leyenda para
enfocarse en los datos. Este análisis permite identificar los productos
energéticos más importantes en términos de generación total.
library(dplyr)
library(kableExtra)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
# Agrupar por 'PRODUCT' y sumar los valores
matrix <- df %>%
group_by(PRODUCT) %>%
summarise(total_value = sum(VALUE, na.rm = TRUE)) %>%
arrange(desc(total_value))
# Calcular el porcentaje
total_sum <- sum(matrix$total_value)
matrix <- matrix %>%
mutate(percentage = (total_value / total_sum) * 100)
print(matrix)
## # A tibble: 27 × 3
## PRODUCT total_value percentage
## <chr> <dbl> <dbl>
## 1 Net electricity production 134484902. 15.0
## 2 Electricity supplied 134456775. 15.0
## 3 Final consumption 121391585. 13.5
## 4 Non-renewables 91440198. 10.2
## 5 Total combustible fuels 73564745. 8.21
## 6 Fossil fuels 69989694. 7.81
## 7 Low carbon 64980414. 7.25
## 8 Renewables 43044826. 4.80
## 9 Natural gas 38366848. 4.28
## 10 Coal 28232284. 3.15
## # ℹ 17 more rows
##La producción neta de electricidad y la electricidad suministrada son las más significativas, con aproximadamente 134.48 millones GWh cada una, representando el 15.0% del total. El consumo final ocupa el tercer lugar con 121.39 millones GWh, equivalente al 13.54% del total. Las categorías de no renovables y combustibles fósiles también son relevantes, con 91.44 millones GWh (10.20%) y 69.99 millones GWh (7.81%), respectivamente. En contraste, las renovables tienen una participación menor, con 43.04 millones GWh, que representan solo el 4.80% del total. Este desglose resalta la importancia de las fuentes no renovables en la matriz energética de Colombia, en comparación con las fuentes renovables, que tienen una menor contribución.
library(ggplot2)
library(dplyr)
# Crear el data frame a partir de los datos proporcionados
suma <- data.frame(
product = c("Renewables", "Non-renewables"),
total_value = c(501011.136768, 194898.130874)
)
# Crear el gráfico de pastel
ggplot(suma, aes(x = "", y = total_value, fill = product)) +
geom_bar(width = 1, stat = "identity") +
coord_polar(theta = "y") +
labs(
title = "Proporción de producción de energía en Colombia\nRenovables vs No renovables",
fill = "Tipo de Generación"
) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5),
legend.position = "right"
) +
geom_text(aes(label = sprintf("%.1f%%", (total_value / sum(total_value)) * 100)),
position = position_stack(vjust = 0.5))
##Se crea un gráfico de pastel utilizando los valores totales de energía
generada por fuentes renovables y no renovables. Las fuentes renovables
tienen un valor total de 501,011 GWh, mientras que las no renovables
generan 194,898 GWh. Cada segmento del gráfico representa un tipo de
energía, mostrando su proporción respecto al total. Las etiquetas dentro
del gráfico indican el porcentaje de cada tipo de generación, calculado
en función de la proporción que cada valor total representa sobre el
total general. El gráfico tiene un diseño limpio con un título centrado
y una leyenda situada a la derecha para indicar los tipos de generación.
Este gráfico facilita la comparación visual entre la producción de
energía renovable y no renovable en Colombia, destacando la mayor
participación de las fuentes renovables en el total energético.
library(ggplot2)
library(dplyr)
# Crear el data frame con los datos proporcionados
df_ren <- data.frame(
product = c("Hydro", "Combustible renewables", "Solar", "Wind", "Geothermal", "Other renewables"),
value = c(484841.379477, 14550.226834, 1187.545802, 431.984655, 0, 0)
)
# Agrupar por 'product' y calcular la suma y media
suma <- df_ren %>%
group_by(product) %>%
summarise(total_value = sum(value, na.rm = TRUE))
order <- df_ren %>%
group_by(product) %>%
summarise(mean_value = mean(value, na.rm = TRUE)) %>%
arrange(desc(mean_value)) %>%
pull(product)
# Crear el gráfico de barras
ggplot(df_ren, aes(x = reorder(product, value), y = value)) +
geom_bar(stat = "summary", fun = "mean", fill = "steelblue", color = "black") +
labs(
title = "Producción de energía. Fuentes Renovables",
x = "Tipo de generación",
y = "Energía promedio [GWh]"
) +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(angle = 45, hjust = 1)
) +
scale_x_discrete(limits = order) # Ordenar las barras según 'order'
##Este gráfico muestra la producción de energía promedio en
gigavatios-hora (GWh) por tipo de fuente renovable, como hidroeléctrica,
renovables combustibles, solar, eólica, geotérmica, y otras. Las fuentes
se agrupan por tipo y se ordenan según su valor promedio de producción,
con la hidroeléctrica claramente dominando con más de 484,000 GWh. Las
barras están ordenadas de mayor a menor, lo que facilita la comparación
visual de la contribución de cada tipo de energía.
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# Crear un gráfico interactivo de series temporales
fig <- df %>%
plot_ly(x = ~YEAR, y = ~VALUE, color = ~PRODUCT, type = 'scatter', mode = 'lines+markers') %>%
layout(title = "Evolución de la Producción de Energía",
xaxis = list(title = "Año"),
yaxis = list(title = "Producción de Energía [GWh]"))
fig
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
##El gráfico muestra cómo ha cambiado la producción de energía en gigavatios-hora (GWh) para distintos productos energéticos a lo largo del tiempo. Cada línea representa un producto energético diferente, con puntos marcados en cada año para destacar los valores de producción. El gráfico es interactivo, permitiendo a los usuarios explorar los datos de forma dinámica, resaltando o eliminando productos específicos para un análisis más detallado.
##Estos gráficos y análisis de datos energéticos pueden ser útiles en geología para evaluar los recursos energéticos de un país, especialmente en términos de su origen geológico. Al estudiar la producción de energías renovables (como hidroeléctrica, geotérmica, eólica) y no renovables (como combustibles fósiles), los geólogos pueden identificar las fuentes naturales subyacentes, como formaciones rocosas ricas en combustibles fósiles o áreas con alto potencial geotérmico. Además, permite monitorear cómo los recursos geológicos están siendo explotados y su impacto en el entorno natural.