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, también incluiremos código de Python y de la librería Matplotlib.
Recomendamos tener instaladas las últimas actualizaciones 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 dataframes, ejecutaremos sentencias SQL sobre 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)
mtcars - cyl & gear
A continuación, mostraremos como unir dos diagramas de barras (Bar Charts) en un sólo gráfico, haciendo uso de la función par(), tomando como base el data set mtcars y 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))
Consejo!!!
El conocimiento de Markdown, mejora la estructura y presentación de nuestros 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
import matplotlib.pyplot as plteje_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()
Markdon - RMarkdown - Quarto
A continuación, mostramos los logos de 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; utilizaremos el paquete vembedr(Lyttle, 2021) para insertar vídeos a nuestro documento Quarto.
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
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 luego convertirlos a formato HTML.↩︎
RMarkdown es un paquete del lenguaje de programación R, que nos permite unir texto plano con código de R, Python y crear documentos reproducibles en formatos HTML,PDF, Word entre otros.↩︎
Quarto es un sistema de publicación de documentos científicos y técnicos, que nos permite crear documentos científicos y técnicos.↩︎
Correr el código
---title: Bar Chart - 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, también incluiremos código de Python y de la librería Matplotlib.author: 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: theme: journal code-fold: true code-tools: true toc: true css: "style_014.css"bibliography: biblio_013.bibcsl: apa.csllink-citation: yes lang: 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(sqldf)library(vembedr)library(reticulate)``````{python,include=FALSE}#| echo: falsefrom platform import python_versionversion=python_version()```:::{.callout-important}Recomendamos tener instaladas las últimas actualizaciones 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```:::- 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 dataframes, ejecutaremos sentencias SQL sobre el Data Set **mtcars** y 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```:::::::[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"}# Click aquí como activar e instalar paquetes en Rinstall.packages("ggplot2")<br>install.packages("lattice")<br>install.packages("sqldf")<br>install.packages("vembedr")<br>install.packages("reticulate")<br>library(ggplot2)<br>library(lattice)<br>library(sqldf)<br>library(vembedr)<br>library(reticualte):::## 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)```## mtcars - cyl & gearA continuación, mostraremos como unir dos diagramas de barras (**Bar Charts**) en un sólo gráfico, haciendo uso de la función `par()`, tomando como base el data set **mtcars** y sus variables **cyl** (cilindros) 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))```:::{.callout-tip}## Consejo!!!El conocimiento de **Markdown**, mejora la estructura y presentación de nuestros 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',results='hide',collapse=TRUE}import matplotlib.pyplot as plteje_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()```## Markdon - RMarkdown - QuartoA continuación, mostramos los logos de **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; utilizaremos el paquete **vembedr**[@vembedr] para insertar vídeos a nuestro documento **Quarto**.```{r vembedr}embed_url("https://www.youtube.com/watch?v=EkxRj02iaLk&t=6s") %>%use_align("center")```[^1]: Markdown es un lenguaje de marcado ligero, que nos permite establecer la estructura y presentación de nuestros documentos para luego convertirlos a formato HTML.[^2]: RMarkdown es un paquete del lenguaje de programación R, que nos permite unir texto plano con código de R, Python y crear documentos reproducibles en formatos HTML,PDF, Word entre otros.[^3]: Quarto es un sistema de publicación de documentos científicos y técnicos, que nos permite crear documentos científicos y técnicos.