En esta sección, cargamos los datos de créditos de Agrobanco del Fondo Agroperú.
# Cargar librerÃas necesarias
library(readxl)
library(dplyr)
library(ggplot2)
# Importar los datos
cartera_nueva_fagroperu <- read_excel("cartera_fondo_agroperu.xlsx")
Agrupamos y resumimos los datos para obtener los montos aprobados y el número de créditos por producto.
cartera_dni_ruc <- cartera_nueva_fagroperu %>%
group_by(Producto_TRT) %>%
summarise(
Monto_aprobado = sum(`Monto Aprobado`) / 1e6, # Convertir a millones
Créditos = n(),
.groups = 'drop'
) %>%
arrange(-Monto_aprobado) %>%
slice_head(n = 5) # Seleccionar los primeros 5 resultados
cartera_dni_ruc
## # A tibble: 5 × 3
## Producto_TRT Monto_aprobado Créditos
## <chr> <dbl> <int>
## 1 Vacuno - Carne 586. 42646
## 2 Cafe 476. 31411
## 3 Cacao 247. 21633
## 4 Papa 231. 19517
## 5 Arroz 118. 8290
Creamos un gráfico de barras atractivo para mostrar los resultados.
grafico_1 <- ggplot(cartera_dni_ruc, aes(x = reorder(Producto_TRT, -Monto_aprobado), y = Monto_aprobado, fill = Producto_TRT)) +
# Barras
geom_bar(stat = "identity", width = 0.7, position = "dodge") +
# Etiquetas de Monto aprobado sobre las barras
geom_text(aes(label = paste0(round(Monto_aprobado, 1), " mm")),
vjust = -0.3, size = 6, fontface = "bold", color = "black") +
# Etiquetas de Créditos dentro de las barras
geom_text(aes(label = paste(Créditos, "créditos")),
vjust = 1.5, size = 4, color = "white", fontface = "bold") +
# Escala de colores personalizada
scale_fill_manual(values = c("#1f78b4", "#33a02c", "#ff7f00", "#e31a1c", "#6a3d9a")) +
# TÃtulos y etiquetas
labs(
title = "Monto aprobado y número de créditos por tipo de producto (2021-2024)",
x = "Producto",
y = "Monto (millones de soles)",
fill = "Producto"
) +
# Tema visual atractivo
theme_minimal(base_size = 16) +
theme(
plot.title = element_text(face = "bold", size = 13, hjust = 0.5),
axis.title.x = element_text(face = "bold", size = 16),
axis.title.y = element_text(face = "bold", size = 16),
axis.text.x = element_text(size = 14, face = "bold"),
axis.text.y = element_text(size = 14),
legend.position = "bottom",
legend.title = element_text(size = 14, face = "bold"),
legend.text = element_text(size = 12),
panel.grid.major = element_line(color = "grey85"),
panel.grid.minor = element_blank()
) +
# Ajustar lÃmites del eje y
ylim(0, max(cartera_dni_ruc$Monto_aprobado) * 1.2) # Espacio extra para las etiquetas
grafico_1
Agrupamos y resumimos los datos para obtener los montos aprobados y el número de créditos por departamento.
cartera_dni_ruc <- cartera_nueva_fagroperu %>%
group_by(Departamento) %>%
summarise(
Monto_aprobado = sum(`Monto Aprobado`) / 1e6, # Convertir a millones
Créditos = n(),
.groups = 'drop'
) %>%
arrange(-Monto_aprobado)
cartera_dni_ruc
## # A tibble: 24 × 3
## Departamento Monto_aprobado Créditos
## <chr> <dbl> <int>
## 1 PUNO 389. 26763
## 2 CAJAMARCA 255. 15066
## 3 SAN MARTIN 201. 16117
## 4 AREQUIPA 149. 8581
## 5 JUNIN 139. 11116
## 6 AYACUCHO 138. 12629
## 7 HUANUCO 106. 9170
## 8 APURIMAC 101. 10301
## 9 PIURA 100. 7889
## 10 CUSCO 96.7 8970
## # ℹ 14 more rows
Creamos un gráfico de barras atractivo para mostrar los resultados de montos aprobados por departamentos.
grafico_2 <- ggplot(cartera_dni_ruc, aes(x = reorder(Departamento, Monto_aprobado), y = Monto_aprobado, fill = Departamento)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(aes(label = paste0(round(Monto_aprobado, 2), "M")), hjust = -0.3, size = 5, fontface = "bold", position = position_dodge(width = 0.9)) + # Etiqueta de Monto aprobado sobre la barra
geom_text(aes(label = scales::comma(Créditos)), hjust = 1.5, color = "white", size = 5, fontface = "bold", position = position_dodge(width = 0.9)) + # Etiqueta de Créditos en el medio de la barra
scale_fill_viridis_d() + # Usar una paleta de colores visualmente atractiva
coord_flip() + # Voltear el sentido de las barras
labs(
title = "Montos Aprobados por Departamento",
x = "Departamento",
y = "Monto Aprobado (Millones)",
fill = "Departamento"
) +
theme_minimal(base_size = 15) + # Aumentar el tamaño base para mejorar la legibilidad
theme(
legend.position = "none", # Ocultar la leyenda para no repetir la información
plot.title = element_text(hjust = 0.5, face = "bold", size = 20),
axis.title.x = element_text(face = "bold", size = 15),
axis.title.y = element_text(face = "bold", size = 15),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
panel.grid.major = element_line(color = "grey80"),
panel.grid.minor = element_blank()
) +
ylim(0, max(cartera_dni_ruc$Monto_aprobado) * 1.1) # Aumentar el lÃmite superior del eje y para que se vean las etiquetas
grafico_2