{"id":2226,"date":"2020-07-12T23:12:58","date_gmt":"2020-07-13T04:12:58","guid":{"rendered":"https:\/\/naps.com.mx\/blog\/?p=2226"},"modified":"2020-07-12T23:16:16","modified_gmt":"2020-07-13T04:16:16","slug":"ejemplos-en-matplotlib-de-5-tipos-graficos","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/ejemplos-en-matplotlib-de-5-tipos-graficos\/","title":{"rendered":"Ejemplos en Matplotlib de 5 tipos de gr\u00e1ficos"},"content":{"rendered":"<p>Veremos ejemplos en Matplotlib de 5 tipos de gr\u00e1ficos. Para realizar gr\u00e1ficos de datos en Python se utiliza la librer\u00eda Matplotlib. A continuaci\u00f3n veremos c\u00f3mo realizar: histogramas, diagramas de dispersi\u00f3n, gr\u00e1ficos de barras, diagrama de cajas y gr\u00e1ficos circulares en Matplotlib.<\/p>\n<p><!--more--><\/p>\n<div id=\"attachment_2237\" style=\"width: 727px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/MATPLOTLIB-PARA-QUE-SIRVE-CADA-GRAFICO.001.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2237\" class=\" wp-image-2237\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/MATPLOTLIB-PARA-QUE-SIRVE-CADA-GRAFICO.001.jpeg\" alt=\"\" width=\"717\" height=\"538\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/MATPLOTLIB-PARA-QUE-SIRVE-CADA-GRAFICO.001.jpeg 1024w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/MATPLOTLIB-PARA-QUE-SIRVE-CADA-GRAFICO.001-300x225.jpeg 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/MATPLOTLIB-PARA-QUE-SIRVE-CADA-GRAFICO.001-768x576.jpeg 768w\" sizes=\"auto, (max-width: 717px) 100vw, 717px\" \/><\/a><p id=\"caption-attachment-2237\" class=\"wp-caption-text\">Mira los siguientes ejemplos en Matplotlib.<\/p><\/div>\n<p>\u00c9ste art\u00edculo tambi\u00e9n est\u00e1 disponible en VIDEO. M\u00edralo aqu\u00ed:\u00a0<a href=\"https:\/\/youtu.be\/Ykw4jOD_bYU\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/Ykw4jOD_bYU<\/a><\/p>\n<p>Para los siguientes ejemplos utilizaremos el siguiente archivo:\u00a0<a href=\"https:\/\/drive.google.com\/file\/d\/1Hzljeh0TAVM3g4b_KQJTCoxKm84Ij26_\/view?usp=sharing\" target=\"_blank\" rel=\"noopener\">https:\/\/drive.google.com\/file\/d\/1Hzljeh0TAVM3g4b_KQJTCoxKm84Ij26_\/view?usp=sharing<\/a><\/p>\n<p>Consiste en un CSV que contiene datos de un estudio realizado en la zona de Boston, donde se analizan diferentes variables, como son el \u00edndice de crimen, el n\u00famero de habitaciones, el porcentaje de habitantes de clase baje y el valor medio de las casas de esa zona.<\/p>\n<h2>Pasos iniciales<\/h2>\n<p>Lo primero que vamos a hacer es importar las librer\u00edas necesarias, leer el archivo CSV y renombrar las columnas para una mejor comprensi\u00f3n.<\/p>\n<pre class=\"lang:python decode:true\">import pandas as pd\r\nimport matplotlib.pyplot as plt\r\n\r\ndatos = pd.read_csv(\"casasboston.csv\")\r\n#datos = datos[[\"RM\",\"CRIM\", \"MEDV\", \"TOWN\", \"CHAS\", \"INDUS\", \"LSTAT\"]]\r\ndf = datos[[\"RM\",\"CRIM\", \"MEDV\", \"TOWN\", \"CHAS\"]]\r\n\r\ndf = datos.rename(columns={\r\n\t\"TOWN\":\"CIUDAD\",\r\n\t\"CRIM\":\"INDICE_CRIMEN\",\t\r\n\t\"INDUS\":\"PCT_ZONA_INDUSTRIAL\",\r\n\t\"CHAS\":\"RIO_CHARLES\",\r\n\t\"RM\":\"N_HABITACIONES_MEDIO\",\r\n\t\"MEDV\":\"VALOR_MEDIANO\",\r\n\t\"LSTAT\":\"PCT_CLASE_BAJA\"\r\n})\r\n\r\nprint (df.sample(5))<\/pre>\n<p>Puedes consultar el siguiente enlace si deseas comprender mejor c\u00f3mo se trabaja con pandas en Python:<\/p>\n<p>Pandas en Python: lo que debes saber para comenzar.<\/p>\n<h2>Ejemplos en Matplotlib en Python y Pandas<\/h2>\n<h2>Histogramas<\/h2>\n<p>Un histograma es \u00fatil para ver la distribuci\u00f3n de una variable, es decir, nos permite ver los valores m\u00e1s comunes.<\/p>\n<p>En el siguiente ejemplo deseamos ver la distribuci\u00f3n de la cantidad media de habitaciones en el estudio realizado.<\/p>\n<pre class=\"lang:python decode:true \">df.N_HABITACIONES_MEDIO.plot.hist()\r\nplt.show()<\/pre>\n<p>Y nos devuelve:<\/p>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2229\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas.png\" alt=\"ejemplos en matplotlib histogramas\" width=\"460\" height=\"388\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas.png 1280w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-300x253.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-768x647.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-1024x862.png 1024w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/a><\/p>\n<p>Un gr\u00e1fico de \u00e9ste tipo nos permite ver f\u00e1cilmente que la mayor parte de las casas registradas cuentan con 6 o 7 habitaciones.<\/p>\n<p>Otro ejemplo ser\u00eda si deseamos ver la distribuci\u00f3n del \u00edndice de crimen. Podemos utilizar bins para especificar la cantidad de grupos en los que deseamos distribuir los casos, y xlim para centrarnos en algunos grupos en espec\u00edfico.<\/p>\n<pre class=\"lang:python decode:true \">df.INDICE_CRIMEN.plot.hist(bins=100, xlim=(0,20))\r\nplt.show()<\/pre>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-histogramas-bins.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2230\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-histogramas-bins.png\" alt=\"ejemplos en matplotlib histogramas histogramas bins\" width=\"452\" height=\"381\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-histogramas-bins.png 1280w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-histogramas-bins-300x253.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-histogramas-bins-768x647.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-histogramas-histogramas-bins-1024x862.png 1024w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Gr\u00e1fico de dispersi\u00f3n<\/h2>\n<p>El gr\u00e1fico de dispersi\u00f3n o scatter, sirve para representar la relaci\u00f3n entre dos variables. Por ejemplo, si quisi\u00e9semos ver la relaci\u00f3n entre \u00edndice de crimen y el\u00a0valor mediano de las casas. En otras palabras, \u00bfel \u00edndice de crimen afecta el valor medio de las casas?<\/p>\n<pre class=\"lang:python decode:true \">df.plot.scatter(x=\"INDICE_CRIMEN\", y=\"VALOR_MEDIANO\", alpha=0.2)\r\nplt.show()<\/pre>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-dispersion.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2231\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-dispersion.png\" alt=\"ejemplos en matplotlib dispersion\" width=\"453\" height=\"382\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-dispersion.png 1280w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-dispersion-300x253.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-dispersion-768x647.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-dispersion-1024x862.png 1024w\" sizes=\"auto, (max-width: 453px) 100vw, 453px\" \/><\/a><\/p>\n<p>El gr\u00e1fico nos deja ver que a menor \u00edndice de crimen el valor mediano aumenta, por lo que pudi\u00e9semos concluir que ambos valores est\u00e1n correlacionados.<\/p>\n<p>&nbsp;<\/p>\n<h2>Gr\u00e1fico de barras<\/h2>\n<p>Un gr\u00e1fico de barras es \u00fatil para comparar una variable entre distintos grupos o categor\u00edas. Por ejemplo, si quisi\u00e9ramos observar el valor medio de cada ciudad.<\/p>\n<p>Tenemos el valor medio de zonas dentro de una ciudad, as\u00ed que la \u00fanica forma de obtener el dato de la media de toda la ciudad, ser\u00eda realizando una operaci\u00f3n de agrupaci\u00f3n. (Para m\u00e1s informaci\u00f3n sobre agrupaci\u00f3n en Pandas consulta:\u00a0Filtrado y uso de query con Pandas en Python).<\/p>\n<p>El siguiente c\u00f3digo agrupa por ciudad, y toma la media del valor_mediano. Despu\u00e9s grafica las 10 primeras ciudades.<\/p>\n<pre class=\"lang:python decode:true\">valor_por_ciudad = df.groupby(\"CIUDAD\")[\"VALOR_MEDIANO\"].mean()\r\nvalor_por_ciudad.head(10).plot.barh()\r\nplt.show()\r\n<\/pre>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-barras.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2232\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-barras.png\" alt=\"ejemplos en matplotlib barras\" width=\"463\" height=\"390\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-barras.png 1280w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-barras-300x253.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-barras-768x647.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-barras-1024x862.png 1024w\" sizes=\"auto, (max-width: 463px) 100vw, 463px\" \/><\/a><\/p>\n<p>El agrupamiento realizado en Pandas y graficado con Matlplotlib, nos permite de forma r\u00e1pida y sencilla observar qu\u00e9 ciudades tienen el valor medio m\u00e1s alto para sus propiedades.<\/p>\n<h2>Diagrama de cajas<\/h2>\n<p>Los diagramas de cajas son \u00fatiles para representar grupos de datos y compararlos entre ellos. Otro uso importante es que nos permiten identificar de forma sencilla si una variable tiene muchos <em>outliers<\/em>\u00a0(valores at\u00edpicos) esto es, elementos que se alejan de los valores frecuentes de dicha variable.<\/p>\n<p>Por ejemplo, si deseamos ver los valores at\u00edpicos de \u00edndice de crimen\u00a0en los diferentes cuantiles de valor mediano.<\/p>\n<p>Primero vamos a agrupar los datos de \u00abvalor_mediano\u00bb en 5 cuantiles. Con esa clasificaci\u00f3n vamos a realizar el gr\u00e1fico contemplando el \u00edndice de crimen por cada cuantil.<\/p>\n<pre class=\"lang:python decode:true \">df[\"VALOR_CUANTILES\"] = pd.qcut(df.VALOR_MEDIANO, 5)\r\ndf.boxplot(column=\"INDICE_CRIMEN\", by=\"VALOR_CUANTILES\",\r\n\tfigsize=(8,6))\r\nplt.show()<\/pre>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-cajas.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2234\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-cajas.png\" alt=\"ejemplos en matplotlib cajas\" width=\"531\" height=\"436\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-cajas.png 1602w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-cajas-300x246.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-cajas-768x631.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-cajas-1024x841.png 1024w\" sizes=\"auto, (max-width: 531px) 100vw, 531px\" \/><\/a><\/p>\n<p>Vemos 5 grupos de datos, son los valores de las casas agrupadas por cuantiles. A la izquierda est\u00e1n las casas que tienen menor valor y a la derecha las que tienen m\u00e1s valor. En cada columna hay una caja de color azul que tiene una linea central verde. Esa l\u00ednea representa la mediana. Y el cuadro azul agrupa el 50% de los datos. Las otras l\u00edneas representan los l\u00edmites superior e inferior. Todos los datos que est\u00e9n fuera de esos l\u00edmites se consideran at\u00edpicos y est\u00e1n representados por peque\u00f1os c\u00edrculos vac\u00edos en el diagrama.<\/p>\n<p>\u00c9ste gr\u00e1fico nos permite ver f\u00e1cilmente los valores at\u00edpicos de un conjunto de datos.<\/p>\n<h2>Gr\u00e1fico circular<\/h2>\n<p>Un gr\u00e1fico circular se usa para mostrar la relaci\u00f3n porcentual entre las partes\u00a0con relaci\u00f3n a su conjunto. En nuestro ejemplo hay una columna que se llama \u00abRio_Charles\u00bb, que contiene un 1 si la propiedad est\u00e1 cerca del r\u00edo charles y un 0 si no lo est\u00e1. Con esto podemos crear un gr\u00e1fico circular que nos deje ver la proporci\u00f3n de lugares cerca y no cerca del r\u00edo charles.<\/p>\n<pre class=\"lang:python decode:true \">df.RIO_CHARLES.value_counts().plot.pie()\r\nplt.show()<\/pre>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-circular.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2235\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-circular.png\" alt=\"ejemplos en matplotlib circular\" width=\"454\" height=\"385\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-circular.png 1274w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-circular-300x254.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-circular-768x651.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-en-matplotlib-circular-1024x868.png 1024w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/a><\/p>\n<p>Espero que \u00e9stos ejemplos en Matplotlib te hayan ayudado a entender mejor el uso de algunos gr\u00e1ficos.<\/p>\n<p>Todo lo anterior tambi\u00e9n lo puedes ver en el siguiente video:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/Ykw4jOD_bYU\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Veremos ejemplos en Matplotlib de 5 tipos de gr\u00e1ficos. Para realizar gr\u00e1ficos de datos en Python se utiliza la librer\u00eda Matplotlib. A continuaci\u00f3n veremos c\u00f3mo realizar: histogramas, diagramas de dispersi\u00f3n, gr\u00e1ficos de barras, diagrama de cajas y gr\u00e1ficos circulares en Matplotlib.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[301],"tags":[287,309,308,306],"class_list":["post-2226","post","type-post","status-publish","format-standard","hentry","category-curso-python-analisis-datos","tag-curso-python","tag-graficacion","tag-matplotlib","tag-pandas-en-python"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=2226"}],"version-history":[{"count":7,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2226\/revisions"}],"predecessor-version":[{"id":2242,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2226\/revisions\/2242"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=2226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=2226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=2226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}