Gráfico evolución del PIB a precios corrientes y constantes (Volúmenes)

Dado que se pide una relación entre el tiempo (2005 hasta 2023) y el PIB de cada año, lo más conveniente es crear una relación en un plano de 2 dimensiones donde el tiempo (Año) corresponde al eje horizontal y el PIB al eje vertical.

Metodología

Lo más conveniente es simplificar toda la información de archivo excel a un dataframe, de tal manera que a cada Año le corresponda un valor de PIB. Así

# Instalar y cargar las librerías necesarias
install.packages("ggplot2")
Error in install.packages : Updating loaded packages
install.packages("plotly")
Error in install.packages : Updating loaded packages
library(ggplot2)
library(plotly)

# Crear el DataFrame con los datos del PIB total (extraídos del Excel)
pib_total <- data.frame(
  Año = c(2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 
          2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023),
  PIB = c(337958, 381604, 428506, 476554, 501574, 544060, 619023, 666507, 
          714093, 762903, 804692, 863782, 920471, 987791, 1060068, 998471, 
          1192634, 1469791, 1572459)
)

# Crear el gráfico base con ggplot2
grafico <- ggplot(pib_total, aes(x = Año, y = PIB, text = paste("Año:", Año, "<br>PIB:", PIB))) +
  geom_line(color = "blue", size = 1) +   # Línea azul
  geom_point(color = "red", size = 3) +   # Puntos rojos interactivos
  labs(title = "Evolución Interactiva del PIB (2005-2023)",
       x = "Año",
       y = "PIB (millones de COP)") +
  theme_minimal()

# Convertir el gráfico en interactivo con ggplotly
grafico_interactivo <- ggplotly(grafico, tooltip = "text")

# Mostrar el gráfico en RStudio
grafico_interactivo

htmlwidgets::saveWidget(grafico_interactivo, "grafico_pib.html", selfcontained = TRUE)
browseURL("grafico_pib.html")

Gráfico evolución del PIB a precios constantes

# Crear el DataFrame con los datos corregidos del PIB en series encadenadas de volumen
pib_volumen_encadenado <- data.frame(
  Año = c(2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 
          2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023),
  PIB = c(514853, 549435, 586457, 605713, 612616, 640151, 684628, 711415, 
          747939, 781589, 804692, 821489, 832656, 854008, 881224, 817900, 
          906243, 972298, 978233)
)

# Crear el gráfico interactivo
grafico_pib_volumen <- ggplot(pib_volumen_encadenado, aes(x = Año, y = PIB, text = paste("Año:", Año, "<br>PIB:", PIB))) +
  geom_line(color = "blue", size = 1) +   # Línea azul
  geom_point(color = "blue", size = 3) +   # Puntos rojos interactivos
  labs(title = "Evolución Interactiva del PIB en Volumen (2005-2023)",
       x = "Año",
       y = "PIB (millones de COP, encadenados)") +
  theme_minimal()

# Convertir el gráfico en interactivo con ggplotly
grafico_pib_volumen_interactivo <- ggplotly(grafico_pib_volumen, tooltip = "text")

# Mostrar el gráfico interactivo en RStudio
grafico_pib_volumen_interactivo
NA

Punto 2

# Instalar y cargar las librerías necesarias
install.packages("ggplot2")
Error in install.packages : Updating loaded packages
install.packages("plotly")
Error in install.packages : Updating loaded packages
library(ggplot2)
library(plotly)

# Crear el DataFrame con los datos de Ahorro Bruto y Formación Bruta de Capital
df_ahorro_capital <- data.frame(
  Año = c(2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 
          2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023),
  Ahorro_Bruto = c(61808, 73983, 81527, 95192, 95756, 102616, 122209, 125272, 
                    138553, 140794, 150079, 156629, 160837, 170430, 144085, 
                    155820, 199100, 177804, 225610),
  Formacion_Bruta_Capital = c(73189, 87536, 100503, 113043, 110284, 119088, 
                              142348, 147329, 183122, 191305, 200116, 198816, 
                              209367, 226649, 190989, 225610, 290196, 213891, 273280)
)

# Crear el gráfico interactivo
grafico_ahorro_capital <- ggplot(df_ahorro_capital, aes(x = Año)) +
  geom_line(aes(y = Ahorro_Bruto, color = "Ahorro Bruto"), size = 1) +
  geom_point(aes(y = Ahorro_Bruto, color = "Ahorro Bruto"), size = 3) +
  geom_line(aes(y = Formacion_Bruta_Capital, color = "Formación Bruta de Capital"), size = 1, linetype = "dashed") +
  geom_point(aes(y = Formacion_Bruta_Capital, color = "Formación Bruta de Capital"), size = 3) +
  labs(title = "Evolución Interactiva del Ahorro Bruto y la Formación Bruta de Capital (2005-2023)",
       x = "Año",
       y = "Millones de COP") +
  scale_color_manual(values = c("Ahorro Bruto" = "blue", "Formación Bruta de Capital" = "red")) +
  theme_minimal()

# Convertir el gráfico en interactivo con ggplotly
grafico_ahorro_capital_interactivo <- ggplotly(grafico_ahorro_capital) %>% layout(width = 1000, height = 600, xaxis = list(dtick = 1, tickmode = 'array', tickvals = df_ahorro_capital$Año, ticktext = df_ahorro_capital$Año)) %>% layout(width = 1000, height = 600)
Aviso: Specifying width/height in layout() is now deprecated.
Please specify in ggplotly() or plot_ly()
Aviso: Specifying width/height in layout() is now deprecated.
Please specify in ggplotly() or plot_ly()
# Mostrar el gráfico interactivo en RStudio
grafico_ahorro_capital_interactivo
LS0tDQp0aXRsZTogIklFQ19UQVJFQV8xX0FORFJFU19TVUFSRVoiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQpkYXRlOiAiMjAyNS0wMi0wNiINCi0tLQ0KDQojIEdyw6FmaWNvIGV2b2x1Y2nDs24gZGVsIFBJQiBhIHByZWNpb3MgY29ycmllbnRlcyB5IGNvbnN0YW50ZXMgKFZvbMO6bWVuZXMpDQpEYWRvIHF1ZSBzZSBwaWRlIHVuYSByZWxhY2nDs24gZW50cmUgZWwgdGllbXBvICgyMDA1IGhhc3RhIDIwMjMpIHkgZWwgUElCIGRlIGNhZGEgYcOxbywgbG8gbcOhcyBjb252ZW5pZW50ZSBlcyBjcmVhciB1bmEgcmVsYWNpw7NuIGVuIHVuIHBsYW5vIGRlIDIgZGltZW5zaW9uZXMgZG9uZGUgZWwgdGllbXBvIChBw7FvKSBjb3JyZXNwb25kZSBhbCBlamUgaG9yaXpvbnRhbCB5DQplbCBQSUIgYWwgZWplIHZlcnRpY2FsLiANCg0KIyMgTWV0b2RvbG9nw61hIA0KTG8gbcOhcyBjb252ZW5pZW50ZSBlcyAgc2ltcGxpZmljYXIgdG9kYSBsYSBpbmZvcm1hY2nDs24gZGUgYXJjaGl2byBleGNlbCBhIHVuIGRhdGFmcmFtZSwgZGUgdGFsIG1hbmVyYSBxdWUgYSBjYWRhIEHDsW8gbGUgY29ycmVzcG9uZGEgdW4gdmFsb3IgZGUgUElCLiBBc8OtDQoNCg0KYGBge3J9DQojIEluc3RhbGFyIHkgY2FyZ2FyIGxhcyBsaWJyZXLDrWFzIG5lY2VzYXJpYXMNCmluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQ0KaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikNCg0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQoNCiMgQ3JlYXIgZWwgRGF0YUZyYW1lIGNvbiBsb3MgZGF0b3MgZGVsIFBJQiB0b3RhbCAoZXh0cmHDrWRvcyBkZWwgRXhjZWwpDQpwaWJfdG90YWwgPC0gZGF0YS5mcmFtZSgNCiAgQcOxbyA9IGMoMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCwgDQogICAgICAgICAgMjAxNSwgMjAxNiwgMjAxNywgMjAxOCwgMjAxOSwgMjAyMCwgMjAyMSwgMjAyMiwgMjAyMyksDQogIFBJQiA9IGMoMzM3OTU4LCAzODE2MDQsIDQyODUwNiwgNDc2NTU0LCA1MDE1NzQsIDU0NDA2MCwgNjE5MDIzLCA2NjY1MDcsIA0KICAgICAgICAgIDcxNDA5MywgNzYyOTAzLCA4MDQ2OTIsIDg2Mzc4MiwgOTIwNDcxLCA5ODc3OTEsIDEwNjAwNjgsIDk5ODQ3MSwgDQogICAgICAgICAgMTE5MjYzNCwgMTQ2OTc5MSwgMTU3MjQ1OSkNCikNCg0KIyBDcmVhciBlbCBncsOhZmljbyBiYXNlIGNvbiBnZ3Bsb3QyDQpncmFmaWNvIDwtIGdncGxvdChwaWJfdG90YWwsIGFlcyh4ID0gQcOxbywgeSA9IFBJQiwgdGV4dCA9IHBhc3RlKCJBw7FvOiIsIEHDsW8sICI8YnI+UElCOiIsIFBJQikpKSArDQogIGdlb21fbGluZShjb2xvciA9ICJibHVlIiwgc2l6ZSA9IDEpICsgICAjIEzDrW5lYSBhenVsDQogIGdlb21fcG9pbnQoY29sb3IgPSAicmVkIiwgc2l6ZSA9IDMpICsgICAjIFB1bnRvcyByb2pvcyBpbnRlcmFjdGl2b3MNCiAgbGFicyh0aXRsZSA9ICJFdm9sdWNpw7NuIEludGVyYWN0aXZhIGRlbCBQSUIgKDIwMDUtMjAyMykiLA0KICAgICAgIHggPSAiQcOxbyIsDQogICAgICAgeSA9ICJQSUIgKG1pbGxvbmVzIGRlIENPUCkiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIENvbnZlcnRpciBlbCBncsOhZmljbyBlbiBpbnRlcmFjdGl2byBjb24gZ2dwbG90bHkNCmdyYWZpY29faW50ZXJhY3Rpdm8gPC0gZ2dwbG90bHkoZ3JhZmljbywgdG9vbHRpcCA9ICJ0ZXh0IikNCg0KIyBNb3N0cmFyIGVsIGdyw6FmaWNvIGVuIFJTdHVkaW8NCmdyYWZpY29faW50ZXJhY3Rpdm8NCg0KaHRtbHdpZGdldHM6OnNhdmVXaWRnZXQoZ3JhZmljb19pbnRlcmFjdGl2bywgImdyYWZpY29fcGliLmh0bWwiLCBzZWxmY29udGFpbmVkID0gVFJVRSkNCmJyb3dzZVVSTCgiZ3JhZmljb19waWIuaHRtbCIpDQpgYGANCg0KDQojIEdyw6FmaWNvIGV2b2x1Y2nDs24gZGVsIFBJQiBhIHByZWNpb3MgY29uc3RhbnRlcyANCg0KYGBge3J9DQojIENyZWFyIGVsIERhdGFGcmFtZSBjb24gbG9zIGRhdG9zIGNvcnJlZ2lkb3MgZGVsIFBJQiBlbiBzZXJpZXMgZW5jYWRlbmFkYXMgZGUgdm9sdW1lbg0KcGliX3ZvbHVtZW5fZW5jYWRlbmFkbyA8LSBkYXRhLmZyYW1lKA0KICBBw7FvID0gYygyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyLCAyMDEzLCAyMDE0LCANCiAgICAgICAgICAyMDE1LCAyMDE2LCAyMDE3LCAyMDE4LCAyMDE5LCAyMDIwLCAyMDIxLCAyMDIyLCAyMDIzKSwNCiAgUElCID0gYyg1MTQ4NTMsIDU0OTQzNSwgNTg2NDU3LCA2MDU3MTMsIDYxMjYxNiwgNjQwMTUxLCA2ODQ2MjgsIDcxMTQxNSwgDQogICAgICAgICAgNzQ3OTM5LCA3ODE1ODksIDgwNDY5MiwgODIxNDg5LCA4MzI2NTYsIDg1NDAwOCwgODgxMjI0LCA4MTc5MDAsIA0KICAgICAgICAgIDkwNjI0MywgOTcyMjk4LCA5NzgyMzMpDQopDQoNCiMgQ3JlYXIgZWwgZ3LDoWZpY28gaW50ZXJhY3Rpdm8NCmdyYWZpY29fcGliX3ZvbHVtZW4gPC0gZ2dwbG90KHBpYl92b2x1bWVuX2VuY2FkZW5hZG8sIGFlcyh4ID0gQcOxbywgeSA9IFBJQiwgdGV4dCA9IHBhc3RlKCJBw7FvOiIsIEHDsW8sICI8YnI+UElCOiIsIFBJQikpKSArDQogIGdlb21fbGluZShjb2xvciA9ICJibHVlIiwgc2l6ZSA9IDEpICsgICAjIEzDrW5lYSBhenVsDQogIGdlb21fcG9pbnQoY29sb3IgPSAiYmx1ZSIsIHNpemUgPSAzKSArICAgIyBQdW50b3Mgcm9qb3MgaW50ZXJhY3Rpdm9zDQogIGxhYnModGl0bGUgPSAiRXZvbHVjacOzbiBJbnRlcmFjdGl2YSBkZWwgUElCIGVuIFZvbHVtZW4gKDIwMDUtMjAyMykiLA0KICAgICAgIHggPSAiQcOxbyIsDQogICAgICAgeSA9ICJQSUIgKG1pbGxvbmVzIGRlIENPUCwgZW5jYWRlbmFkb3MpIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KIyBDb252ZXJ0aXIgZWwgZ3LDoWZpY28gZW4gaW50ZXJhY3Rpdm8gY29uIGdncGxvdGx5DQpncmFmaWNvX3BpYl92b2x1bWVuX2ludGVyYWN0aXZvIDwtIGdncGxvdGx5KGdyYWZpY29fcGliX3ZvbHVtZW4sIHRvb2x0aXAgPSAidGV4dCIpDQoNCiMgTW9zdHJhciBlbCBncsOhZmljbyBpbnRlcmFjdGl2byBlbiBSU3R1ZGlvDQpncmFmaWNvX3BpYl92b2x1bWVuX2ludGVyYWN0aXZvDQoNCmBgYA0KDQojIFB1bnRvIDIgDQpgYGB7cn0NCiMgSW5zdGFsYXIgeSBjYXJnYXIgbGFzIGxpYnJlcsOtYXMgbmVjZXNhcmlhcw0KaW5zdGFsbC5wYWNrYWdlcygiZ2dwbG90MiIpDQppbnN0YWxsLnBhY2thZ2VzKCJwbG90bHkiKQ0KDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHBsb3RseSkNCg0KIyBDcmVhciBlbCBEYXRhRnJhbWUgY29uIGxvcyBkYXRvcyBkZSBBaG9ycm8gQnJ1dG8geSBGb3JtYWNpw7NuIEJydXRhIGRlIENhcGl0YWwNCmRmX2Fob3Jyb19jYXBpdGFsIDwtIGRhdGEuZnJhbWUoDQogIEHDsW8gPSBjKDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQsIA0KICAgICAgICAgIDIwMTUsIDIwMTYsIDIwMTcsIDIwMTgsIDIwMTksIDIwMjAsIDIwMjEsIDIwMjIsIDIwMjMpLA0KICBBaG9ycm9fQnJ1dG8gPSBjKDYxODA4LCA3Mzk4MywgODE1MjcsIDk1MTkyLCA5NTc1NiwgMTAyNjE2LCAxMjIyMDksIDEyNTI3MiwgDQogICAgICAgICAgICAgICAgICAgIDEzODU1MywgMTQwNzk0LCAxNTAwNzksIDE1NjYyOSwgMTYwODM3LCAxNzA0MzAsIDE0NDA4NSwgDQogICAgICAgICAgICAgICAgICAgIDE1NTgyMCwgMTk5MTAwLCAxNzc4MDQsIDIyNTYxMCksDQogIEZvcm1hY2lvbl9CcnV0YV9DYXBpdGFsID0gYyg3MzE4OSwgODc1MzYsIDEwMDUwMywgMTEzMDQzLCAxMTAyODQsIDExOTA4OCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNDIzNDgsIDE0NzMyOSwgMTgzMTIyLCAxOTEzMDUsIDIwMDExNiwgMTk4ODE2LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwOTM2NywgMjI2NjQ5LCAxOTA5ODksIDIyNTYxMCwgMjkwMTk2LCAyMTM4OTEsIDI3MzI4MCkNCikNCg0KIyBDcmVhciBlbCBncsOhZmljbyBpbnRlcmFjdGl2bw0KZ3JhZmljb19haG9ycm9fY2FwaXRhbCA8LSBnZ3Bsb3QoZGZfYWhvcnJvX2NhcGl0YWwsIGFlcyh4ID0gQcOxbykpICsNCiAgZ2VvbV9saW5lKGFlcyh5ID0gQWhvcnJvX0JydXRvLCBjb2xvciA9ICJBaG9ycm8gQnJ1dG8iKSwgc2l6ZSA9IDEpICsNCiAgZ2VvbV9wb2ludChhZXMoeSA9IEFob3Jyb19CcnV0bywgY29sb3IgPSAiQWhvcnJvIEJydXRvIiksIHNpemUgPSAzKSArDQogIGdlb21fbGluZShhZXMoeSA9IEZvcm1hY2lvbl9CcnV0YV9DYXBpdGFsLCBjb2xvciA9ICJGb3JtYWNpw7NuIEJydXRhIGRlIENhcGl0YWwiKSwgc2l6ZSA9IDEsIGxpbmV0eXBlID0gImRhc2hlZCIpICsNCiAgZ2VvbV9wb2ludChhZXMoeSA9IEZvcm1hY2lvbl9CcnV0YV9DYXBpdGFsLCBjb2xvciA9ICJGb3JtYWNpw7NuIEJydXRhIGRlIENhcGl0YWwiKSwgc2l6ZSA9IDMpICsNCiAgbGFicyh0aXRsZSA9ICJFdm9sdWNpw7NuIEludGVyYWN0aXZhIGRlbCBBaG9ycm8gQnJ1dG8geSBsYSBGb3JtYWNpw7NuIEJydXRhIGRlIENhcGl0YWwgKDIwMDUtMjAyMykiLA0KICAgICAgIHggPSAiQcOxbyIsDQogICAgICAgeSA9ICJNaWxsb25lcyBkZSBDT1AiKSArDQogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJBaG9ycm8gQnJ1dG8iID0gImJsdWUiLCAiRm9ybWFjacOzbiBCcnV0YSBkZSBDYXBpdGFsIiA9ICJyZWQiKSkgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KIyBDb252ZXJ0aXIgZWwgZ3LDoWZpY28gZW4gaW50ZXJhY3Rpdm8gY29uIGdncGxvdGx5DQpncmFmaWNvX2Fob3Jyb19jYXBpdGFsX2ludGVyYWN0aXZvIDwtIGdncGxvdGx5KGdyYWZpY29fYWhvcnJvX2NhcGl0YWwpICU+JSBsYXlvdXQod2lkdGggPSAxMDAwLCBoZWlnaHQgPSA2MDAsIHhheGlzID0gbGlzdChkdGljayA9IDEsIHRpY2ttb2RlID0gJ2FycmF5JywgdGlja3ZhbHMgPSBkZl9haG9ycm9fY2FwaXRhbCRBw7FvLCB0aWNrdGV4dCA9IGRmX2Fob3Jyb19jYXBpdGFsJEHDsW8pKSAlPiUgbGF5b3V0KHdpZHRoID0gMTAwMCwgaGVpZ2h0ID0gNjAwKQ0KDQojIE1vc3RyYXIgZWwgZ3LDoWZpY28gaW50ZXJhY3Rpdm8gZW4gUlN0dWRpbw0KZ3JhZmljb19haG9ycm9fY2FwaXRhbF9pbnRlcmFjdGl2bw0KYGBgDQoNCg0KDQoNCg0KDQo=