El presente documento muestra como crear diagramas de barras (Bar Charts) en el lenguaje de programación R, haciendo uso de la función base barplot(); así como de los paquetes ggplot2 y lattice, incluimos código de Python utilizando la librería Matplotlib.
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.
Bar Chart creado manualmente.
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 como base el data set mtcars y 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 reespectivo, 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)
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()
Bar Chart - Lattice
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)
Consejo!!!
El uso de Markdown mejorá la configuración y presentación de tus documentos Quarto.
mtcars - cyl & gear
A continuación, mostramos como unir dos diagramas de barras (Bar Charts) en un sólo gráfico, tomando como base el data set mtcars y sus variables cyl 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 - 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
#| fig-align: centereje_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()
Markdown - RMarkdown - Quarto
A continuación, mostramos los logos que representan 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) haciendo uso de la función barplot() y el paquete ggplot2 del lenguaje de programación R.
Referencias
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.
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 nos permite establecer la estructura y presentación de nuestros documentos para luegos convertirlos a formato HTML.↩︎
RMarkdown es un paquete del lenguaje de programación R que nos permite crear documentos reproducibles en formato HTML,PDF,Microsoft Word, entre otros.↩︎
Quarto es un sistema de publicación de documentos científicos y técnicos, que nos permite trabajar con R,Python,Julia y Observable JS.↩︎
Correr el código
---title: Bar Charts - Rsubtitle: barplot() - ggplot2 - latticedate: last-modified #now #todaydescription: El presente documento muestra como crear diagramas de barras (Bar Charts) en el lenguaje de programación R, haciendo uso de la función base barplot(); así como de los paquetes ggplot2 y lattice, incluimos código de Python utilizando la librería Matplotlib.author: name: Renzo Cáceres Rossi url: https://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 theme: journal css: "style_017.css"bibliography: biblio_017.bibcsl: apa.csllink-citations: yeslang: Es-es---<!-- Quarto es un sistema de publicación de documentos científicos y técnicos -->```{r setup,include=FALSE}library(ggplot2)library(lattice)library(vembedr)library(reticulate)library(sqldf)``````{python,include=FALSE}#| echo: falsefrom platform import python_versionversion = python_version()import matplotlib.pyplot as plt```:::{.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 cyl}summary(mtcars$cyl)cyl_table <-sqldf("select cyl,count(cyl) as cantidad from mtcars group by cyl")cyl_table```## var_gear```{r gear}summary(mtcars$gear)gear_table <-sqldf("select gear,count(gear) as cantidad from mtcars group by gear")gear_table```## var_carb```{r carb}summary(mtcars$carb)carb_table <-sqldf("select carb,count(carb) as cantidad from mtcars group by carb")carb_table```:::- Revisa como luce el logo de Markdown @fig-markdown- Revisa como luce el logo de RMarkdown @fig-rmarkdown- Revisa como luce 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 como base el data set **mtcars** y sus variables **cyl** (cilindros), **gear** (engranajes) y **carb** (carburadores).::::{.columns}:::{.column width="33%"}## var_cyl```{r var_cyl}cyl_table <-sqldf("select cyl,count(cyl) as cantidad from mtcars group by cyl")cyl_table```::::::{.column width="33%"}## var_gear```{r var_gear}gear_table <-sqldf("select gear,count(gear) as cantidad from mtcars group by gear")gear_table```::::::{.column width="33%"}## var_carb```{r var_carb}carb_table <-sqldf("select carb,count(carb) as cantidad from mtcars group by carb")carb_table```:::::::[Recomendamos **R for Data Science**- Cognitive Class <https://cognitiveclass.ai/courses/r-101>{target=_blank}]{.aside}## 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 reespectivo, como se muestra en la siguiente imagen.```{r barplot,fig.align='center'}x <-table(mtcars$cyl)colores <-c("orange","blue","purple")barplot(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores)```:::{.callout-warning collapse="true"}## Clik 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 - 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'}ggplot(mtcars,aes(cyl)) +geom_bar(fill=colores) +labs(x="Cillindros",y="Frecuencias",title="Número de Cilindros") +theme_dark()```## 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'}barchart(x,xlab="Cilindros",ylab="Frecuencias",main="Número de Cilindros",col=colores,horizontal=FALSE)```:::{.callout-tip}## Consejo!!!El uso de **Markdown** mejorá la configuración y presentación de tus documentos **Quarto**.:::## mtcars - cyl & gearA continuación, mostramos como unir dos diagramas de barras (**Bar Charts**) en un sólo gráfico, tomando como base el data set **mtcars** y sus variables **cyl** y **gear** (engranajes).```{r cyl_gear,fig.align='center'}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 - 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,results='hide',collapse=TRUE,fig.align='center'}#| fig-align: centereje_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()```## Markdown - RMarkdown - QuartoA continuación, mostramos los logos que representan 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**) haciendo uso de la función `barplot()` y el paquete **ggplot2** del lenguaje de programación R.<br><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>[^1]: **Markdown** es un lenguaje de marcado ligero que nos permite establecer la estructura y presentación de nuestros documentos para luegos convertirlos a formato HTML.[^2]: **RMarkdown** es un paquete del lenguaje de programación R que nos permite crear documentos reproducibles en formato HTML,PDF,Microsoft Word, entre otros.[^3]: **Quarto** es un sistema de publicación de documentos científicos y técnicos, que nos permite trabajar con R,Python,Julia y Observable JS.