{"id":118,"date":"2010-12-03T18:08:43","date_gmt":"2010-12-03T18:08:43","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/nemo\/?p=118"},"modified":"2010-12-11T07:55:19","modified_gmt":"2010-12-11T07:55:19","slug":"creando-grafico-dispersion-ggplot2-part1","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/nemo\/2010\/12\/03\/creando-grafico-dispersion-ggplot2-part1\/","title":{"rendered":"Creando un gr\u00e1fico de Dispersi\u00f3n con ggplot2 (Scatterplot) Parte 1"},"content":{"rendered":"<p>Luego de tener una <a href=\"http:\/\/blog.espol.edu.ec\/nemo\/2010\/10\/26\/paquete-ggplot-intro\/\">primera impresi\u00f3n de Ggplot2<\/a>, de conocer sus <a href=\"http:\/\/blog.espol.edu.ec\/nemo\/2010\/11\/05\/paquete-ggplot-bases\/\">conceptos b\u00e1sicos<\/a>, y de haberlo <a href=\"http:\/\/blog.espol.edu.ec\/nemo\/2010\/11\/23\/instalacion-ggplot2\/\">instalado y cargado<\/a> vamos a usarlo, empezaremos con los famosos gr\u00e1ficos de dispersi\u00f3n (Scatterplot en ingl\u00e9s).<\/p>\n<p>Para los ejemplos aqui explicados se ha desarrollado una peque\u00f1a base de 100 observaciones, cada observaci\u00f3n corresponde a un individuo (100 filas), a cada individuo se le mide 5 caracter\u00edsticas o variables de inter\u00e9s (5 columnas), las variables medidas son: Altura, Peso, Genero, Edad y Nivel Socio-Econ\u00f3mico (NSE), los datos pueden descargarlos <a href=\"http:\/\/www.scribd.com\/doc\/44262197\/Data\">aqui<\/a> y guardarlos como un txt con el nombre <em>Data.txt<\/em> (recordar que R hace distinci\u00f3n entre may\u00fasculas y min\u00fasculas).<\/p>\n<p>Lo primero que debemos hacer es asegurarnos de que el<strong> directorio que este usando R<\/strong> sea donde tenemos guardados los datos, para ello utilizamos el comando \"getwd()\" que da como resultado la carpeta en la que est\u00e1 trabajando R, es decir, en esta carpeta buscar\u00e1 los archivos que le pidamos leer, as\u00ed como guardar\u00e1 los archivos que generemos.<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> <a href=\"http:\/\/inside-r.org\/r-doc\/base\/getwd\"><span style=\"color: #003399;font-weight: bold\">getwd<\/span><\/a><span style=\"color: #009900\">(<\/span><span style=\"color: #009900\">)<\/span>\r\n<span style=\"color: #009900\">[<\/span><span style=\"color: #cc66cc\">1<\/span><span style=\"color: #009900\">]<\/span> <span style=\"color: #0000ff\">\"\/home\/nemo\/Documentos\"<\/span><\/pre>\n<\/div>\n<\/div>\n<p>Si deseamos <strong>cambiar el directorio de trabajo<\/strong>, (como en mi caso, pues tengo los datos en otra carpeta) utilizamos el comando \"setwd()\", de la siguiente manera<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> <a href=\"http:\/\/inside-r.org\/r-doc\/base\/setwd\"><span style=\"color: #003399;font-weight: bold\">setwd<\/span><\/a><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"\/home\/nemo\/Documentos\/Blog\/Ggplot\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p>Luego debemos <strong>leer el archivo de datos<\/strong>, para esto usamos el comando \"read.table()\", en nuestro caso vamos a leer el archivo data.txt que tiene en su primer l\u00ednea los encabezados de las variables (header= TRUE), y en el que las columnas est\u00e1n separadas por tabulaciones (sep=\"\\t\"), y esto lo vamos a asignar a la variable datos (data&lt;-); la sentencia queda de la siguiente forma:<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> datos<span>&lt;-<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/read.table\"><span style=\"color: #003399;font-weight: bold\">read.table<\/span><\/a><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Data.txt\"<\/span><span style=\"color: #339933\">,<\/span> header = <span style=\"color: #000000;font-weight: bold\">TRUE<\/span><span style=\"color: #339933\">,<\/span> sep = <span style=\"color: #0000ff\">\"<span style=\"color: #000099;font-weight: bold\">\\t<\/span>\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p>El objeto \"datos\" creado, es un objeto de la clase \"data.frame\" (nombre con el cual R nombra a la base de datos o marco de datos), para ver la estructura de \"datos\" vamos a presentar los valores de las 4 primeras observaciones haciendo<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> datos<span style=\"color: #009900\">[<\/span><span style=\"color: #cc66cc\">1<\/span><span>:<\/span><span style=\"color: #cc66cc\">4<\/span><span style=\"color: #339933\">,<\/span><span style=\"color: #009900\">]<\/span>\r\n  Altura Peso Genero Edad   NSE\r\n<span style=\"color: #cc66cc\">1<\/span>   <span style=\"color: #cc66cc\">1.38<\/span> <span style=\"color: #cc66cc\">77.5<\/span>      M   <span style=\"color: #cc66cc\">10<\/span> Medio\r\n<span style=\"color: #cc66cc\">2<\/span>   <span style=\"color: #cc66cc\">1.41<\/span> <span style=\"color: #cc66cc\">76.3<\/span>      F   <span style=\"color: #cc66cc\">10<\/span>  bajo\r\n<span style=\"color: #cc66cc\">3<\/span>   <span style=\"color: #cc66cc\">1.40<\/span> <span style=\"color: #cc66cc\">73.2<\/span>      F   <span style=\"color: #cc66cc\">10<\/span>  bajo\r\n<span style=\"color: #cc66cc\">4<\/span>   <span style=\"color: #cc66cc\">1.39<\/span> <span style=\"color: #cc66cc\">80.5<\/span>      M   <span style=\"color: #cc66cc\">10<\/span>  bajo<\/pre>\n<\/div>\n<\/div>\n<p>Como hab\u00eda mencionado, <strong>las variables son<\/strong> Altura, Peso, Genero, Edad y NSE (Nivel Socio-Economico).<\/p>\n<p>Bien, ahora s\u00ed, a usar ggplot2!! He escogido el gr\u00e1fico de dispersi\u00f3n porque es excelente para empezar a familiarizarse con este paquete, los ejemplos ser\u00e1n desarrollados de las dos maneras en la que trabaja ggplot2, es decir con el comando b\u00e1sico qplot() (por quick plot o grafico r\u00e1pido) y con el comando ggplot() que es m\u00e1s personalizable y por tanto versatil, pero pierde un poco de rapidez.<\/p>\n<p style=\"text-align: center\"><strong>Gr\u00e1fico de dispersi\u00f3n simple Altura vs Peso<\/strong><\/p>\n<p>Usando la funci\u00f3n qplot, debemos especificar los siguientes argumentos: (x, y, data) donde \u201cx\u201d y \u201cy\u201d son las variables a representar en los ejes de coordenadas, variables que com\u00fanmente (y es recomendado) pertenecen al data.frame que se especifica con el argumento \u201cdata\u201d; nosotros vamos a realizar un gr\u00e1fico Altura vs Peso, entonces la sentencia ser\u00eda:<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span><span style=\"color: #003399;font-weight: bold\"> qplot <\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #339933\">,<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p>y el gr\u00e1fico resultante es:<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/11\/AlturaVsPeso_1.jpg\" alt=\"Gr\u00e1fico de dispersi\u00f3n simple Altura vs Peso\" width=\"398\" height=\"381\" \/><\/p>\n<p>Usando el comando ggplot, para obtener el mismo gr\u00e1fico el primer paso es crear el objeto \u201cgr\u00e1fico\u201d de la siguiente manera \"ggplot(data, aes(Altura, Peso), este comando no presenta ning\u00fan gr\u00e1fico pues no se le ha insertado capa alguna, para decirle a ggplot que queremos que aumente una capa de puntos escribimos \"+ layer( geom = \u201dpoint\u201d)\" o simplemente \"+ geom_point()\"<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span><span style=\"color: #003399;font-weight: bold\"> ggplot<\/span><span style=\"color: #009900\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span> <span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span> <span>+<\/span><span style=\"color: #003399;font-weight: bold\"> layer<\/span><span style=\"color: #009900\">(<\/span> <span style=\"color: #003399;font-weight: bold\">geom <\/span>=<span style=\"color: #0000ff\">\"point\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span><span style=\"color: #003399;font-weight: bold\"> ggplot<\/span><span style=\"color: #009900\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> aes<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span> <span>+<\/span><span style=\"color: #003399;font-weight: bold\"> geom_point<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p style=\"text-align: center\"><strong>Gr\u00e1fico de dispersi\u00f3n Altura vs Peso vs G\u00e9nero (color seg\u00fan G\u00e9nero)<\/strong><\/p>\n<p>Si se desea ver c\u00f3mo se comporta la relaci\u00f3n \u201caltura\u201d vs \u201cpeso\u201d seg\u00fan el \u201cg\u00e9nero\u201d, entonces adem\u00e1s de ver en el \"eje x\" la altura, y en el \"eje y\" el peso, podemos\u00a0hacer que el gr\u00e1fico nos muestre puntos de diferente color, seg\u00fan el g\u00e9nero correspondiente, para ello debemos agregar al gr\u00e1fico la caracter\u00edstica est\u00e9tica <em>color (colour)<\/em> asociada a la variable categ\u00f3rica \u201cGenero\u201d. Adem\u00e1s se va a modificar la nomenclatura de los ejes a: eje y = Peso(Libras) y eje x = Altura(metros); estos cambios se los realiza de siguiente manera:<\/p>\n<p><code>Usando qplot<\/code><\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span><span style=\"color: #003399;font-weight: bold\"> qplot<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #339933\">,<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> colour<\/span>=Genero<span style=\"color: #339933\">,<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> xlab<\/span>=<span style=\"color: #0000ff\">\"Altura(metros)\"<\/span><span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> ylab<\/span>=<span style=\"color: #0000ff\">\"Peso(libras)\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p><code>Usando ggplot <\/code><\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> <a href=\"\/packages\/ggplot\"><span style=\"color: #003399;font-weight: bold\">ggplot<\/span><\/a><span style=\"color: #009900\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #003399;font-weight: bold\">+<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> geom_point<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003399;font-weight: bold\">colour<\/span>=Genero<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #003399;font-weight: bold\">+<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> xlab<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Altura(metros)\"<\/span><span style=\"color: #009900\">)<\/span><span>+<\/span><span style=\"color: #003399;font-weight: bold\">ylab<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Peso(libras)\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p>Note que para aumentar la caracter\u00edstica color y asociarla con la variable \"Genero\" se utiliza el comando <code>aes(colour=Genero)<\/code> mientras que para editar la etiqueta de los ejes, usamos <code>xlab(\"Altura(metros)\")+ ylab(\"Peso(libras)\")<\/code>, el gr\u00e1fico resultante es:<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-145\" title=\"Gr\u00e1fico de Altura Vs Peso Vs Genero\" src=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_2.jpg\" alt=\"Gr\u00e1fico de Altura Vs Peso Vs Genero\" width=\"398\" height=\"381\" srcset=\"https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_2.jpg 498w, https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_2-300x286.jpg 300w\" sizes=\"auto, (max-width: 398px) 100vw, 398px\" \/><\/a><\/p>\n<p style=\"text-align: center\">\n<p style=\"text-align: center\"><strong>Gr\u00e1fico de dispersi\u00f3n Altura vs Peso vs G\u00e9nero (forma seg\u00fan G\u00e9nero)<\/strong><\/p>\n<p>Otra forma de visualizar el G\u00e9nero es utilizar la caracter\u00edstica <em>forma (shape)<\/em> y asociarla con la variable \"Genero\", utilizando el comando <code>aes(shape=Genero)<\/code>, el c\u00f3digo final y el gr\u00e1fico resultante son:<\/p>\n<p><code>Usando qplot<\/code><\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span><span style=\"color: #003399;font-weight: bold\"> qplot<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #339933\">,<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> shape<\/span>=Genero<span style=\"color: #339933\">,<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> xlab<\/span>=<span style=\"color: #0000ff\">\"Altura(metros)\"<\/span><span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> ylab<\/span>=<span style=\"color: #0000ff\">\"Peso(libras)\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p><code>Usando ggplot <\/code><\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> <a href=\"\/packages\/ggplot\"><span style=\"color: #003399;font-weight: bold\">ggplot<\/span><\/a><span style=\"color: #009900\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #003399;font-weight: bold\">+<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> geom_point<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003399;font-weight: bold\">shape<\/span>=Genero<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #003399;font-weight: bold\">+<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> xlab<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Altura(metros)\"<\/span><span style=\"color: #009900\">)<\/span><span>+<\/span><span style=\"color: #003399;font-weight: bold\">ylab<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Peso(libras)\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span style=\"color: #009900\"><a href=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-155\" title=\"Altura vs Peso vs Genero\" src=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a.jpg\" alt=\"Altura vs Peso vs Genero\" width=\"376\" height=\"376\" srcset=\"https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a.jpg 671w, https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a-150x150.jpg 150w, https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a-300x300.jpg 300w\" sizes=\"auto, (max-width: 376px) 100vw, 376px\" \/><\/a>\r\n<\/span><\/pre>\n<pre style=\"font-family: monospace\"><span style=\"font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;line-height: 19px;font-size: 13px\">\u00a0<\/span><\/pre>\n<\/div>\n<\/div>\n<p>En estos gr\u00e1ficos se puede ver que <strong>autom\u00e1ticamente se genera una leyenda en la parte derecha<\/strong> del mismo, la leyenda indica el color o la forma que corresponde a cada G\u00e9nero (recordemos que de esto se encarga la componente escala del paquete ggplot). Lastimosamente el tama\u00f1o de los s\u00edmbolos (shape) no permite apreciar bien el gr\u00e1fico, entonces debemos definir un nuevo tama\u00f1o utilizando el comando <code>size<\/code>, nuestro c\u00f3digo queda de la siguiente manera:<\/p>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span><span style=\"color: #003399;font-weight: bold\"> qplot<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #339933\">,<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> shape<\/span>=Genero<span style=\"color: #339933\">,<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> size=<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/base\/I\"><span style=\"color: #003399;font-weight: bold\">I<\/span><\/a><span style=\"color: #009900\">(<\/span><span style=\"color: #cc66cc\">2<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> xlab<\/span>=<span style=\"color: #0000ff\">\"Altura(metros)\"<\/span><span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> ylab<\/span>=<span style=\"color: #0000ff\">\"Peso(libras)\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<div style=\"overflow: auto\">\n<div class=\"geshifilter\">\n<pre style=\"font-family: monospace\"><span>&gt;<\/span> <a href=\"\/packages\/ggplot\"><span style=\"color: #003399;font-weight: bold\">ggplot<\/span><\/a><span style=\"color: #009900\">(<\/span><a href=\"http:\/\/inside-r.org\/r-doc\/utils\/data\"><span style=\"color: #003399;font-weight: bold\">data<\/span><\/a>=datos<span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span>Altura<span style=\"color: #339933\">,<\/span>Peso<span style=\"color: #009900\">)<\/span><span style=\"color: #009900\">)<\/span><span style=\"color: #003399;font-weight: bold\">+<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> geom_point<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003399;font-weight: bold\">aes<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #003399;font-weight: bold\">shape<\/span>=Genero<span style=\"color: #009900\">)<\/span><span style=\"color: #339933\">,<\/span><span style=\"color: #003399;font-weight: bold\"> size=<\/span><span style=\"color: #cc66cc\">2<\/span><span style=\"color: #009900\">)<\/span><span>+<\/span>\r\n<span>+<\/span><span style=\"color: #003399;font-weight: bold\"> xlab<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Altura(metros)\"<\/span><span style=\"color: #009900\">)<\/span><span>+<\/span><span style=\"color: #003399;font-weight: bold\">ylab<\/span><span style=\"color: #009900\">(<\/span><span style=\"color: #0000ff\">\"Peso(libras)\"<\/span><span style=\"color: #009900\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<p>Aqu\u00ed algo importante, con el comando <strong>ggplot <\/strong>cuando utilizamos <code>aes()<\/code> le estamos diciendo a ggplot, que esa caracter\u00edstica est\u00e9tica tiene alguna relaci\u00f3n con los datos, por lo tanto el paquete autom\u00e1ticamente genera una leyenda para ello; mientras que si tenemos una caracter\u00edstica est\u00e9tica fuera del <code>aes()<\/code>, (como el <code>size=2<\/code> en este caso) ggplot no genera leyenda para ello; pueden probar esto en sus casas cambiando la linea por <code>geom_point(aes(shape=Genero, size=2)+<\/code>. Lo mismo sucede con <strong>qplot<\/strong> si en lugar de <code>size= I(2)<\/code> utilizamos solo <code>size= 2<\/code> Bueno, con los cambios realizados, el gr\u00e1fico resultante es:<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a_.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-181\" title=\"Ggplot: Altura Vs Peso Vs Genero (Shape = Genero)\" src=\"http:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a_.png\" alt=\"Ggplot: Altura Vs Peso Vs Genero (Shape = Genero)\" width=\"446\" height=\"467\" srcset=\"https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a_.png 743w, https:\/\/blog.espol.edu.ec\/nemo\/files\/2010\/12\/AlturaVsPesoVsGenero_3a_-286x300.png 286w\" sizes=\"auto, (max-width: 446px) 100vw, 446px\" \/><\/a><\/p>\n<p>El pr\u00f3ximo paso (algo obvio quiz\u00e1s) ser\u00eda mezclar los colores y la forma al mismo tiempo, pero eso lo haremos en pr\u00f3ximos post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Luego de tener una <a href=\"http:\/\/blog.espol.edu.ec\/nemo\/2010\/10\/26\/paquete-ggplot-intro\/\">primera impresi\u00f3n de Ggplot2<\/a>, de conocer sus <a href=\"http:\/\/blog.espol.edu.ec\/nemo\/2010\/11\/05\/paquete-ggplot-bases\/\">conceptos b\u00e1sicos<\/a>, y de haberlo <a href=\"http:\/\/blog.espol.edu.ec\/nemo\/2010\/11\/23\/instalacion-ggplot2\/\">instalado y cargado<\/a> vamos a usarlo, empezaremos con los famosos gr\u00e1ficos de dispersi\u00f3n (Scatterplot en ingl\u00e9s).<\/p><p><a class=\"more-link btn\" href=\"https:\/\/blog.espol.edu.ec\/nemo\/2010\/12\/03\/creando-grafico-dispersion-ggplot2-part1\/\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":3803,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1688,771,1534],"tags":[27691,27753,27752,26608,27757,2315,27754,27690,17905,1171628,23818,23797,26768,25354,25956,27756,1171624,25618,822,26451,12341,25355,1171627,27692,27755,325,1292],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-estadistica","category-graficos","category-r","tag-2-variables","tag-3-variables","tag-alpha","tag-altura","tag-altura-vs-peso","tag-color","tag-colour","tag-dispersion","tag-edad","tag-estadistica","tag-estadisticos","tag-forma","tag-genero","tag-ggplot","tag-ggplot2","tag-grafico-de-dispersion","tag-graficos","tag-grammar-of-graphics","tag-open-source","tag-paquete","tag-peso","tag-qplot","tag-r","tag-scatterplot","tag-shape","tag-software-libre","tag-transparencia","item-wrap"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/users\/3803"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":48,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":160,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts\/118\/revisions\/160"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}