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 del lenguaje de programación Python 3.9.7(Van Rossum & Drake Jr, 1995) ; compartimos la siguiente imagen como referencia.

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.


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()

Diagrama Barras Horizontal

A continuación, presentamos como crear un diagrama de barras horizontal en el lenguaje de programación Python, utilizando la librería Matplotlib.



eje_x = ['Prog.', 'Ciencia', 'Mat.', 'Ing.']
 

eje_y = [76,31,45,57]

colores =['#FF8C00','#9932CC','#8B0000','#8FBC8F']
 
plt.barh(eje_x, eje_y, color=colores)
for index,value in enumerate(eje_y):
    plt.text(value,index,str(value))

plt.ylabel('Empleados')
plt.xlabel('Habilidades')
plt.title('Habilidades')
plt.show()

Diagrama Barras Apiladas

A continuación, presentamos como crear un diagrama de barras apiladas en el lenguaje de programación Python, utilizando las librerías Matplotlib y Numpy(Harris et al., 2020).


serie_1 = [406, 387, 442, 457, 485]
serie_2 = [421, 453, 435, 478, 512]
 
 
numero_de_grupos = len(serie_1)
indice_barras = np.arange(numero_de_grupos)
ancho_barras =0.35
 
plt.bar(indice_barras, serie_1, width=ancho_barras, label='Hombres')
plt.bar(indice_barras + ancho_barras, serie_2, width=ancho_barras, label='Mujeres')
plt.legend(loc='best')

plt.xticks(indice_barras + ancho_barras, ('2017', '2018', '2019', '2020','2021'))
 
plt.ylabel('Numero de habitantes')
plt.xlabel('Año')
plt.title('Numero de habitantes por genero')
 
plt.show()

Bar charts - Seaborn

Seaborn(Waskom et al., 2017) es una librería de visualización de datos del lenguaje de programación Python que permite crear gráficos estadísticos de gran calidad.


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()

YouTube - Tutorial

Compartimos el siguiente tutorial tomado de la plataforma YouTube que muestra como crear diagramas de barras (Bar Charts) haciendo uso de de las librerías Matplotlib y Seaborn del lenguaje de programación Python.

Referencias Bibliográficas

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
Harris, C. R., Millman, K. J., Walt, S. J. van der, Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., Kerkwijk, M. H. van, Brett, M., Haldane, A., Río, J. F. del, Wiebe, M., Peterson, P., … Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585(7825), 357-362. https://doi.org/10.1038/s41586-020-2649-2
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
Van Rossum, G., & Drake Jr, F. L. (1995). Python reference manual. Centrum voor Wiskunde en Informatica Amsterdam.
Waskom, M., Botvinnik, O., O’Kane, D., Hobson, P., Lukauskas, S., Gemperline, D. C., Augspurger, T., Halchenko, Y., Cole, J. B., Warmenhoven, J., Ruiter, J. de, Pye, C., Hoyer, S., Vanderplas, J., Villalba, S., Kunter, G., Quintero, E., Bachant, P., Martin, M., … Qalieh, A. (2017). mwaskom/seaborn: v0.8.1 (September 2017) (Versión v0.8.1) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.883859
LS0tDQp0aXRsZTogIkJhciBDaGFydHMgLSBQeXRob24iDQpzdWJ0aXRsZTogIk1hdHBsb3RsaWIgLSBOdW1weSAtIFNlYWJvcm4iDQphdXRob3I6ICJSZW56byBDw6FjZXJlcyBSb3NzaSINCmRhdGU6ICIyMDIyLzA5LzEyIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjc3M6ICJzdHlsZV8wMjYuY3NzIg0KICAgIHRoZW1lOiBzYW5kc3RvbmUNCmJpYmxpb2dyYXBoeTogYmlibGlvXzAyNy5iaWINCmNzbDogYXBhLmNzbA0KbGluay1jaXRhdGlvbnM6IHllcw0KbGFuZzogRXMtZXMgICAgDQotLS0NCg0KPCEtLSBSTWFya2Rvd24gcGVybWl0ZSBlamVjdXRhciBjw7NkaWdvIGRlIFB5dGhvbjsgY29udmlydGllbmRvbG8gYSB1biBkb2N1bWVudG8gcmVwcm9kdWNpYmxlIGVuIGZvcm1hdG8gSFRNTCxQREYgeSBNaWNyb3NvZnQgV29yZCAtLT4NCg0KYGBge3B5dGhvbixpbmNsdWRlPUZBTFNFfQ0KaW1wb3J0IG1hdHBsb3RsaWIucHlwbG90IGFzIHBsdA0KDQppbXBvcnQgbnVtcHkgYXMgbnANCg0KaW1wb3J0IHNlYWJvcm4gYXMgc25zDQoNCmZyb20gcGxhdGZvcm0gaW1wb3J0IHB5dGhvbl92ZXJzaW9uDQoNCnZlcnNpb249cHl0aG9uX3ZlcnNpb24oKQ0KDQpgYGANCg0KDQpgYGB7cixpbmNsdWRlPUZBTFNFfQ0KDQpsaWJyYXJ5KHJldGljdWxhdGUpDQoNCmBgYA0KDQoNCg0KIyMgRGlhZ3JhbWFzIGRlIEJhcnJhcyANCg0KRWwgZGlhZ3JhbWEgZGUgYmFycmFzICgqKkJhciBDaGFydCoqKSBlcyB1biBncsOhZmljbyBlc3RhZMOtc3RpY28gcXVlIG5vcyBwZXJtaXRlIHJlcHJlc2VudGFyIGxhIGRpc3RyaWJ1Y2nDs24gZGUgZnJlY3VlbmNpYXMgZGUgdmFyaWFibGVzIGN1YWxpdGF0aXZhcyB5IGN1YW50aXRhdGl2YXMgZGlzY3JldGFzOyBudWVzdHJvIG9iamV0aXZvIGVzIHBhc2FyIGRlbCBsw6FwaXogeSBwYXBlbCBhbCB1c28gZGVsIGxlbmd1YWplIGRlIHByb2dyYW1hY2nDs24gUHl0aG9uIGByIHB5JHZlcnNpb25gW0B2YW4xOTk1cHl0aG9uXSA7IGNvbXBhcnRpbW9zIGxhIHNpZ3VpZW50ZSBpbWFnZW4gY29tbyByZWZlcmVuY2lhLg0KDQo8Y2VudGVyPg0KDQohW10oZGlhZ3JhbWFfYmFycmFzX2FtYW5vLmpwZyl7d2lkdGg9NDAwfQ0KDQoNCjwvY2VudGVyPg0KDQojIyBCYXIgQ2hhcnRzIC0gTWF0cGxvdGxpYg0KDQoqKk1hdHBsb3RsaWIqKltASHVudGVyOjIwMDddIGVzIHVuYSBsaWJyZXLDrWEgZGVsIGxlbmd1YWplIGRlIHByb2dyYW1hY2nDs24gUHl0aG9uLCBxdWUgbm9zIHBlcm1pdGUgY3JlYXIgZ3LDoWZpY29zIGVzdGFkw61zdGljb3MgZGUgZ3JhbiBjYWxpZGFkLCAqKlJNYXJrZG93bioqW0BSTWFya2Rvd25dIG5vcyBwZXJtaXRlIHRyYWJhamFyIGNvbiBvdHJvcyBsZW5ndWFqZXMgZGUgcHJvZ3JhbWFjacOzbiB0YWxlcyBjb21vICoqQysrLCBTUUwsIEp1bGlhKiosIGVudHJlIG11Y2hvcyBvdHJvczsgYSBjb250aW51YWNpw7NuIG1vc3RyYW1vcyB1biBkaWFncmFtYSBkZSBiYXJyYXMgKCoqQmFyIENoYXJ0KiopIGNyZWFkbyBjb24gTWF0cGxvdGxpYi4NCg0KDQpgYGB7cHl0aG9uLHJlc3VsdHM9J2hpZGUnLGNvbGxhcHNlPVRSVUUsZmlnLmFsaWduPSJjZW50ZXIifQ0KDQplamVfeCA9IFsnUHl0aG9uJywgJ1InLCAnTm9kZS5qcycsICdQSFAnXQ0KIA0KDQplamVfeSA9IFs1MCwyMCwzNSw0N10NCiANCg0KcGx0LmJhcihlamVfeCwgZWplX3kpDQogDQoNCnBsdC55bGFiZWwoJ0NhbnRpZGFkIGRlIHVzdWFyaW9zJykNCiANCg0KcGx0LnhsYWJlbCgnTGVuZ3VhamVzIGRlIHByb2dyYW1hY2nDs24nKQ0KIA0KDQpwbHQudGl0bGUoJ1VzdWFyaW9zIGRlIGxlbmd1YWplcyBkZSBwcm9ncmFtYWNpw7NuJykNCiANCg0KcGx0LnNob3coKQ0KDQpgYGANCg0KDQoNCiMjIERpYWdyYW1hIEJhcnJhcyBIb3Jpem9udGFsDQoNCkEgY29udGludWFjacOzbiwgcHJlc2VudGFtb3MgY29tbyBjcmVhciB1biAqKmRpYWdyYW1hIGRlIGJhcnJhcyBob3Jpem9udGFsKiogZW4gZWwgbGVuZ3VhamUgZGUgcHJvZ3JhbWFjacOzbiBQeXRob24sIHV0aWxpemFuZG8gbGEgbGlicmVyw61hIE1hdHBsb3RsaWIuIA0KDQpgYGB7cHl0aG9uLHJlc3VsdHM9J2hpZGUnLGNvbGxhcHNlPVRSVUUsZmlnLmFsaWduPSJjZW50ZXIifQ0KDQoNCmVqZV94ID0gWydQcm9nLicsICdDaWVuY2lhJywgJ01hdC4nLCAnSW5nLiddDQogDQoNCmVqZV95ID0gWzc2LDMxLDQ1LDU3XQ0KDQpjb2xvcmVzID1bJyNGRjhDMDAnLCcjOTkzMkNDJywnIzhCMDAwMCcsJyM4RkJDOEYnXQ0KIA0KcGx0LmJhcmgoZWplX3gsIGVqZV95LCBjb2xvcj1jb2xvcmVzKQ0KDQpmb3IgaW5kZXgsdmFsdWUgaW4gZW51bWVyYXRlKGVqZV95KToNCiAgICBwbHQudGV4dCh2YWx1ZSxpbmRleCxzdHIodmFsdWUpKQ0KDQpwbHQueWxhYmVsKCdFbXBsZWFkb3MnKQ0KcGx0LnhsYWJlbCgnSGFiaWxpZGFkZXMnKQ0KcGx0LnRpdGxlKCdIYWJpbGlkYWRlcycpDQpwbHQuc2hvdygpDQoNCmBgYA0KDQoNCiMjIERpYWdyYW1hIEJhcnJhcyBBcGlsYWRhcw0KDQoNCkEgY29udGludWFjacOzbiwgcHJlc2VudGFtb3MgY29tbyBjcmVhciB1biAqKmRpYWdyYW1hIGRlIGJhcnJhcyBhcGlsYWRhcyoqIGVuIGVsIGxlbmd1YWplIGRlIHByb2dyYW1hY2nDs24gUHl0aG9uLCB1dGlsaXphbmRvIGxhcyBsaWJyZXLDrWFzICoqTWF0cGxvdGxpYioqIHkgKipOdW1weSoqW0BoYXJyaXMyMDIwYXJyYXldLg0KDQoNCmBgYHtweXRob24scmVzdWx0cz0naGlkZScsY29sbGFwc2U9VFJVRSxmaWcuYWxpZ249ImNlbnRlciJ9DQoNCnNlcmllXzEgPSBbNDA2LCAzODcsIDQ0MiwgNDU3LCA0ODVdDQpzZXJpZV8yID0gWzQyMSwgNDUzLCA0MzUsIDQ3OCwgNTEyXQ0KIA0KIA0KbnVtZXJvX2RlX2dydXBvcyA9IGxlbihzZXJpZV8xKQ0KaW5kaWNlX2JhcnJhcyA9IG5wLmFyYW5nZShudW1lcm9fZGVfZ3J1cG9zKQ0KYW5jaG9fYmFycmFzID0wLjM1DQogDQpwbHQuYmFyKGluZGljZV9iYXJyYXMsIHNlcmllXzEsIHdpZHRoPWFuY2hvX2JhcnJhcywgbGFiZWw9J0hvbWJyZXMnKQ0KcGx0LmJhcihpbmRpY2VfYmFycmFzICsgYW5jaG9fYmFycmFzLCBzZXJpZV8yLCB3aWR0aD1hbmNob19iYXJyYXMsIGxhYmVsPSdNdWplcmVzJykNCnBsdC5sZWdlbmQobG9jPSdiZXN0JykNCg0KcGx0Lnh0aWNrcyhpbmRpY2VfYmFycmFzICsgYW5jaG9fYmFycmFzLCAoJzIwMTcnLCAnMjAxOCcsICcyMDE5JywgJzIwMjAnLCcyMDIxJykpDQogDQpwbHQueWxhYmVsKCdOdW1lcm8gZGUgaGFiaXRhbnRlcycpDQpwbHQueGxhYmVsKCdBw7FvJykNCnBsdC50aXRsZSgnTnVtZXJvIGRlIGhhYml0YW50ZXMgcG9yIGdlbmVybycpDQogDQpwbHQuc2hvdygpDQoNCg0KYGBgDQoNCg0KIyMgQmFyIGNoYXJ0cyAtIFNlYWJvcm4NCg0KKipTZWFib3JuKipbQG1pY2hhZWxfd2Fza29tXzIwMTdfODgzODU5XSBlcyB1bmEgbGlicmVyw61hIGRlIHZpc3VhbGl6YWNpw7NuIGRlIGRhdG9zIGRlbCBsZW5ndWFqZSBkZSBwcm9ncmFtYWNpw7NuIFB5dGhvbiBxdWUgcGVybWl0ZSBjcmVhciBncsOhZmljb3MgZXN0YWTDrXN0aWNvcyBkZSBncmFuIGNhbGlkYWQuDQoNCmBgYHtweXRob24scmVzdWx0cz0naGlkZScsY29sbGFwc2U9VFJVRSxmaWcuYWxpZ249ImNlbnRlciJ9DQoNCmVqZV94PVs0LDYsOF0NCg0KZWplX3kgPSBbMTEsNywxNF0NCg0Kc25zLmJhcnBsb3QoeD1lamVfeCx5PWVqZV95KQ0KDQpwbHQudGl0bGUoIk7Dum1lcm8gZGUgQ2lsaW5kcm9zIikNCg0KcGx0LnhsYWJlbCgiQ2lsaW5kcm9zIikNCg0KcGx0LnlsYWJlbCgiRnJlY3VlbmNpYXMiKQ0KDQpwbHQuc2hvdygpDQoNCg0KYGBgDQoNCg0KIyMgWW91VHViZSAtIFR1dG9yaWFsDQoNCkNvbXBhcnRpbW9zIGVsIHNpZ3VpZW50ZSB0dXRvcmlhbCB0b21hZG8gZGUgbGEgcGxhdGFmb3JtYSAqKllvdVR1YmUqKiBxdWUgbXVlc3RyYSBjb21vIGNyZWFyIGRpYWdyYW1hcyBkZSBiYXJyYXMgKCoqQmFyIENoYXJ0cyoqKSBoYWNpZW5kbyB1c28gZGUgZGUgbGFzIGxpYnJlcsOtYXMgKipNYXRwbG90bGliKiogeSAqKlNlYWJvcm4qKiBkZWwgbGVuZ3VhamUgZGUgcHJvZ3JhbWFjacOzbiBQeXRob24uDQoNCjxjZW50ZXI+DQoNCjxpZnJhbWUgd2lkdGg9IjU2MCIgaGVpZ2h0PSIzMTUiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvalByZTZMVnZyNVEiIHRpdGxlPSJZb3VUdWJlIHZpZGVvIHBsYXllciIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4gZGF0YS1leHRlcm5hbD0xPjwvaWZyYW1lPg0KDQoNCjwvY2VudGVyPg0KDQojIyBSZWZlcmVuY2lhcyBCaWJsaW9ncsOhZmljYXMNCg0KDQo8ZGl2IGNsYXNzPSJ0b2NpZnktZXh0ZW5kLXBhZ2UiIGRhdGEtdW5pcXVlPSJ0b2NpZnktZXh0ZW5kLXBhZ2UiIHN0eWxlPSJoZWlnaHQ6IDA7Ij48L2Rpdj4NCg0KDQoNCg==