El presente documento muestra como crear diagramas de barras (Bar Charts) en el lenguaje de programación R, utilizando la función base barplot(), así como los paquetes ggplot2 y lattice, incluiremos código de Python y el uso de la librerías Matplotlib y Seaborn.
Recomendamos instalar las últimas versiones de R,RStudio,Python y Quarto
Diagramas de Barras
El diagrama de barras (Bar Chart) es un gráfico estadístico que nos permite representar la distribución de frecuencias de variables cualitativas y cuantitativas discretas; nuestro objetivo es pasar del lápiz y papel al uso de los lenguajes de programación R version 4.2.1 (2022-06-23 ucrt)(R Core Team, 2022) y Python 3.9.7(Van Rossum & Drake Jr, 1995), recomendamos la lectura del libro El Arte de Programar en R(Santana Sepúlveda et al., 2014); compartimos la siguiente imagen como referencia.
Data Set - mtcars
mtcars es un data set que ya viene precargado al momento de instalar el lenguaje de programación R en nuestro sistema, haremos uso de dicho data set para la creación de distintos diagramas de barras, de las 11 variables y 32 observaciones que lo componen nos enfocaremos en las variables cyl (cilindro) y gear (engranajes) como se muestra a continuación.
mpg cyl disp hp
Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
Median :19.20 Median :6.000 Median :196.3 Median :123.0
Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
drat wt qsec vs
Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
Median :3.695 Median :3.325 Median :17.71 Median :0.0000
Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
am gear carb
Min. :0.0000 Min. :3.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
Median :0.0000 Median :4.000 Median :2.000
Mean :0.4062 Mean :3.688 Mean :2.812
3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :1.0000 Max. :5.000 Max. :8.000
Código
summary(mtcars$cyl)
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.000 4.000 6.000 6.188 8.000 8.000
Código
cyl_table <-sqldf("select cyl,count(cyl) as cantidad from mtcars group by cyl")cyl_table
cyl cantidad
1 4 11
2 6 7
3 8 14
Código
summary(mtcars$gear)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3.000 3.000 4.000 3.688 4.000 5.000
Código
gear_table <-sqldf("select gear,count(gear) as cantidad from mtcars group by gear")gear_table
gear cantidad
1 3 15
2 4 12
3 5 5
Código
summary(mtcars$carb)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 2.000 2.000 2.812 4.000 8.000
Código
carb_table <-sqldf("select carb,count(carb) as cantidad from mtcars group by carb")carb_table
SQLDF(Grothendieck, 2017) es un paquete del lenguaje de programación R que nos permite ejecutar sentencias SQL sobre data frames, tomaremos con base el data set mtcars, así como sus variables cyl (cilindros), gear (engranajes) y carb (carburadores).
var_cyl
Código
cyl_table <-sqldf("select cyl,count(cyl) as cantidad from mtcars group by cyl")cyl_table
cyl cantidad
1 4 11
2 6 7
3 8 14
var_gear
Código
gear_table <-sqldf("select gear,count(gear) as cantidad from mtcars group by gear")gear_table
gear cantidad
1 3 15
2 4 12
3 5 5
var_carb
Código
carb_table <-sqldf("select carb,count(carb) as cantidad from mtcars group by carb")carb_table
La función barplot() nos permite crear diagramas de barras (Bar Charts) en el lenguaje de programación R, utilizaremos la variable cyl (cilindros) para crear el gráfico estadístico respectivo, como se muestra en la siguiente imagen.
Código
x <-table(mtcars$cyl)colores <-c("orange","blue","purple")barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)
Bar Chart creado con la función base barplot()
Bar Chart - ggplot2
ggplot2(Wickham, 2016) es un paquete del lenguaje de programación que nos permite crear gráficos estadísticos de gran calidad, haremos uso de la variable cyl (cilindros) para la creación del gráfico estadístico respectivo, como se muestra a continuación.
Código
ggplot(mtcars,aes(cyl)) +geom_bar(fill=colores) +labs(x="Cillindros",y="Frecuencias",title="Número de Cilindros") +theme_dark()
Lattice(Sarkar, 2008) es un paquete del lenguaje de programación R, que nos permite crear gráficos estadísticos de muy buena calidad, nos enfocaremos en la variable cyl (cilindros) para la creación del gráfico estadístico respectivo, como se muestra a continuación.
Código
barchart(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores,horizontal=FALSE)
Bar Chart creado con lattice
mtcars - cyl & gear
A continuación, mostramos como unir dos diagramas de barras (Bar Charts) en un solo gráfico, tomando como base el data set mtcars, así como sus variables cyl (cilindros) y gear (engranajes).
Código
y <-table(mtcars$gear)par(mfrow=c(1,2))barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)barplot(y,xlab="Engranajes",ylab="Frecuencias",main="Número de Engranajes",col=rainbow(3))
Bar Charts creado con la función barplot()
Consejo!!!
El uso de Markdown mejora la estructura y presentación de tus documentos Quarto
Bar Charts - Matplotlib
Matplotlib(Hunter, 2007) es una librería del lenguaje de programación Python, que nos permite crear gráficos estadísticos de gran calidad, RMarkdown(Allaire et al., 2022) nos permite trabajar con otros lenguajes de programación tales como C++, SQL, Julia, entre muchos otros; a continuación mostramos un diagrama de barras (Bar Chart) creado con Matplotlib.
Código
eje_x = ['Python', 'R', 'Node.js', 'PHP']eje_y = [50,20,35,47]plt.bar(eje_x, eje_y)plt.ylabel('Cantidad de usuarios')plt.xlabel('Lenguajes de programación')plt.title('Usuarios de lenguajes de programación')plt.show()
Bar Chart creado con Matplotlib
Bar Charts - Seaborn
Seaborn(Waskom, 2021) es una librería de Python que nos permite crear gráficos estadísticos de gran calidad, fue creada tomando como base Matplotlib.
Código
eje_x = [4,6,8]eje_y = [11,7,14]sns.barplot(x=eje_x,y=eje_y)plt.title("Número de cilindros")plt.xlabel("Cilindros")plt.ylabel("Frecuencias")plt.show()
Bar Chart creado con Seaborn
Nota
Quarto permite ejecutar código de R,Python,Julia y Observable JS
Markdown - RMarkdown - Quarto
A continuación, mostramos los logos que identifican a las herramientas Markdown1,RMarkdown2 y Quarto3
Figura 1: Logo Markdown
Figura 2: Logo RMarkdown
Figura 3: Logo Quarto
YouTube - Tutorial
Compartimos el siguiente tutorial tomado de la plataforma YouTube que muestra como crear diagramas de barras (Bar Charts) en el lenguaje de programación Python, utilizando las librerías Matplotlib y Seaborn.
Allaire, J., Xie, Y., McPherson, J., Luraschi, J., Ushey, K., Atkins, A., Wickham, H., Cheng, J., Chang, W., & Iannone, R. (2022). rmarkdown: Dynamic Documents for R. https://github.com/rstudio/rmarkdown
Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90-95. https://doi.org/10.1109/MCSE.2007.55
R Core Team. (2022). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. https://www.R-project.org/
Santana Sepúlveda, S., Mateos Farfán, E., et al. (2014). El arte de programar en R: un lenguaje para la estadı́stica. México: Instituto Mexicano de Tecnologı́a del Agua. UNESCO. Comité Nacional ….
Van Rossum, G., & Drake Jr, F. L. (1995). Python reference manual. Centrum voor Wiskunde en Informatica Amsterdam.
Waskom, M. L. (2021). seaborn: statistical data visualization. Journal of Open Source Software, 6(60), 3021. https://doi.org/10.21105/joss.03021
Wickham, H. (2016). ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. https://ggplot2.tidyverse.org
Notas
Markdown es un lenguaje de marcado ligero, que permite configurar la estructura y presentación de nuestros documentos, para luego convertirlos a formatos HTML.↩︎
RMarkdown es un paquete del lenguaje de programación R, que nos permite crear documentos científicos y técnicos para convertirlos a formatos tales como HTML,PDF,Word entre otros.↩︎
Quarto es un sistema de publicación de documentos científicos y técnicos, que nos permite ejecutar código de R,Python,Julila y Observable JS.↩︎
Correr el código
---title: Bar Charts - Rsubtitle: barplot() - ggplot2 - latticedescription: El presente documento muestra como crear diagramas de barras (Bar Charts) en el lenguaje de programación R, utilizando la función base barplot(), así como los paquetes ggplot2 y lattice, incluiremos código de Python y el uso de la librerías Matplotlib y Seaborn.date: last-modified #now #todayauthor: name: Renzo Cáceres Rossi url: https://www.youtube.com/c/renzocaceresrossi affiliation: Hablamos R affiliation-url: https://hablamosr.blogspot.com/title-block-banner: "#808080"format: html: toc: true toc-title: Menú Bar Charts code-fold: true code-tools: true css: "style_031.css" theme: journalbibliography: biblio_031.bibcsl: apa.csllink-citations: yeslang: Es-es ---<aname="abc"></a>[**Fin Documento**](#def)<!-- Quarto es un sistema de publicación de documentos científicos y técnicos -->```{r setup,include=FALSE}library(ggplot2)library(lattice)library(reticulate)library(sqldf)``````{python,include=FALSE}from platform import python_versionversion=python_version()import matplotlib.pyplot as pltimport seaborn as sns```:::{.callout-important}Recomendamos instalar las últimas versiones de **R,RStudio,Python y Quarto**:::## Diagramas de Barras El diagrama de barras (**Bar Chart**) es un gráfico estadístico que nos permite representar la distribución de frecuencias de variables cualitativas y cuantitativas discretas; nuestro objetivo es pasar del lápiz y papel al uso de los lenguajes de programación `r R.version.string`[@Rprogramming] y Python `r py$version`[@van1995python], recomendamos la lectura del libro **El Arte de Programar en R**[@santana2014arte]; compartimos la siguiente imagen como referencia.<center>{width=400}</center>## Data Set - mtcars**mtcars** es un data set que ya viene precargado al momento de instalar el **lenguaje de programación R** en nuestro sistema, haremos uso de dicho data set para la creación de distintos diagramas de barras, de las 11 variables y 32 observaciones que lo componen nos enfocaremos en las variables **cyl** (cilindro) y **gear** (engranajes) como se muestra a continuación.:::{.panel-tabset}### mtcars```{r mtcars}summary(mtcars)```### var_cyl```{r var_cyl}summary(mtcars$cyl)cyl_table <-sqldf("select cyl,count(cyl) as cantidad from mtcars group by cyl")cyl_table```### var_gear```{r var_gear}summary(mtcars$gear)gear_table <-sqldf("select gear,count(gear) as cantidad from mtcars group by gear")gear_table```### var_carb```{r var_carb}summary(mtcars$carb)carb_table <-sqldf("select carb,count(carb) as cantidad from mtcars group by carb")carb_table```:::- Visualiza el logo de **Markdown** @fig-markdown- Visualiza el logo de **RMarkdown** @fig-rmarkdown- Visualiza el logo de **Quarto** @fig-quarto## mtcars - SQL**SQLDF**[@sqldf] es un paquete del lenguaje de programación R que nos permite ejecutar sentencias **SQL** sobre data frames, tomaremos con base el data set **mtcars**, así como sus variables **cyl** (cilindros), **gear** (engranajes) y **carb** (carburadores).::::{.columns}:::{.column width="33%"}### var_cyl```{r}cyl_table <-sqldf("select cyl,count(cyl) as cantidad from mtcars group by cyl")cyl_table```::::::{.column width="33%"}### var_gear```{r}gear_table <-sqldf("select gear,count(gear) as cantidad from mtcars group by gear")gear_table```::::::{.column width="33%"}### var_carb```{r}carb_table <-sqldf("select carb,count(carb) as cantidad from mtcars group by carb")carb_table```::::::::::{.callout-warning collapse="true"}## Click aquí como instalar y activar paquetes en Rinstall.packages("ggplot2")<br>install.packages("lattice")<br>install.packages("reticulate")<br>install.packages("sqldf")<br>library(ggplot2)<br>library(lattice)<br>library(reticulate)<br>library(sqldf):::## Bar Chart - barplot()La función `barplot()` nos permite crear diagramas de barras (**Bar Charts**) en el lenguaje de programación R, utilizaremos la variable cyl (**cilindros**) para crear el gráfico estadístico respectivo, como se muestra en la siguiente imagen.```{r barplot,fig.align='center',fig.cap="Bar Chart creado con la función base barplot()"}x <-table(mtcars$cyl)colores <-c("orange","blue","purple")barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)```## Bar Chart - ggplot2**ggplot2**[@ggplot2] es un paquete del lenguaje de programación que nos permite crear gráficos estadísticos de gran calidad, haremos uso de la variable cyl (**cilindros**) para la creación del gráfico estadístico respectivo, como se muestra a continuación.```{r ggplot2,fig.align='center',fig.cap="Bar Chart creado con ggplot2"}ggplot(mtcars,aes(cyl)) +geom_bar(fill=colores) +labs(x="Cillindros",y="Frecuencias",title="Número de Cilindros") +theme_dark()```[Recomendamos **R for Data Science** - Cognitive Class <https://cognitiveclass.ai/courses/r-101>{target=_blank}]{.aside}## Bar Chart - Lattice**Lattice**[@lattice] es un paquete del lenguaje de programación R, que nos permite crear gráficos estadísticos de muy buena calidad, nos enfocaremos en la variable cyl (**cilindros**) para la creación del gráfico estadístico respectivo, como se muestra a continuación.```{r lattice,fig.align='center',fig.cap="Bar Chart creado con lattice"}barchart(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores,horizontal=FALSE)```## mtcars - cyl & gearA continuación, mostramos como unir dos diagramas de barras (**Bar Charts**) en un solo gráfico, tomando como base el data set **mtcars**, así como sus variables **cyl** (cilindros) y **gear** (engranajes).```{r cyl_mtcars,fig.align='center',fig.cap="Bar Charts creado con la función barplot()"}y <-table(mtcars$gear)par(mfrow=c(1,2))barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)barplot(y,xlab="Engranajes",ylab="Frecuencias",main="Número de Engranajes",col=rainbow(3))```:::{.callout-tip}## Consejo!!!El uso de **Markdown** mejora la estructura y presentación de tus documentos **Quarto**:::## Bar Charts - Matplotlib**Matplotlib**[@Hunter:2007] es una librería del lenguaje de programación Python, que nos permite crear gráficos estadísticos de gran calidad, **RMarkdown**[@RMarkdown] nos permite trabajar con otros lenguajes de programación tales como **C++, SQL, Julia**, entre muchos otros; a continuación mostramos un diagrama de barras (**Bar Chart**) creado con Matplotlib.```{python matplotlib,fig.align='center',fig.cap="Bar Chart creado con Matplotlib",results='hide',collapse=TRUE}eje_x = ['Python', 'R', 'Node.js', 'PHP']eje_y = [50,20,35,47]plt.bar(eje_x, eje_y)plt.ylabel('Cantidad de usuarios')plt.xlabel('Lenguajes de programación')plt.title('Usuarios de lenguajes de programación')plt.show()```## Bar Charts - Seaborn**Seaborn**[@Waskom2021] es una librería de Python que nos permite crear gráficos estadísticos de gran calidad, fue creada tomando como base **Matplotlib**.```{python seaborn,fig.align='center',fig.cap="Bar Chart creado con Seaborn",results='hide',collapse=TRUE}eje_x = [4,6,8]eje_y = [11,7,14]sns.barplot(x=eje_x,y=eje_y)plt.title("Número de cilindros")plt.xlabel("Cilindros")plt.ylabel("Frecuencias")plt.show()```:::{.callout-note}**Quarto** permite ejecutar código de **R,Python,Julia y Observable JS**:::## Markdown - RMarkdown - QuartoA continuación, mostramos los logos que identifican a las herramientas **Markdown**[^1],**RMarkdown**[^2] y **Quarto**[^3]:::{layout-ncol=3}{#fig-markdown}{#fig-rmarkdown}{#fig-quarto}:::## YouTube - TutorialCompartimos el siguiente tutorial tomado de la plataforma **YouTube** que muestra como crear diagramas de barras (**Bar Charts**) en el lenguaje de programación Python, utilizando las librerías **Matplotlib** y **Seaborn**.<center><iframewidth="560"height="315"src="https://www.youtube.com/embed/EkxRj02iaLk"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"allowfullscreendata-external=1></iframe></center>[**Inicio Documento**](#abc)<aname="def"></a>[^1]:**Markdown** es un lenguaje de marcado ligero, que permite configurar la estructura y presentación de nuestros documentos, para luego convertirlos a formatos HTML.[^2]:**RMarkdown** es un paquete del lenguaje de programación R, que nos permite crear documentos científicos y técnicos para convertirlos a formatos tales como HTML,PDF,Word entre otros.[^3]:**Quarto** es un sistema de publicación de documentos científicos y técnicos, que nos permite ejecutar código de R,Python,Julila y Observable JS.