class: inverse, center, middle <br> #### ITA (módulo práctico) ## Gráficos con ggplot2: Primeras ideas <br> ### Pedro J. Pérez <br><br> #### e-mail: [<svg viewBox="0 0 512 512" style="height:1em;position:relative;display:inline-block;top:.1em;" xmlns="http://www.w3.org/2000/svg"> <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg>](mailto:pedro.j.perez@uv.es) [pedro.j.perez@uv.es](mailto:pedro.j.perez@uv.es) --- class: inverse, center, middle background-image: url(data:image/png;base64,#imagenes/ss_06_img_01_ggplot2-hex.png) background-position: 95% 5% background-size: 10% ## Gráficos chulos con *ggplot2* <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Uno de los mejores (que dices!?, el MEJOR!!!) sistema gráfico del MUNDO. --- background-image: url(data:image/png;base64,#imagenes/ss_06_img_01_ggplot2-hex.png) background-position: 98% 2% background-size: 5% ##### el análisis gráfico es fundamental - El **análisis gráfico es fundamental** al presentar resultados, pero también en el análisis exploratorio: permite descubrir relaciones entre variables, y descartar o sugerir nuevas preguntas sobre los datos. <img src="data:image/png;base64,#./imagenes/tt_06_img_01_explore-visualice.png" width="75%" style="display: block; margin: auto;" /> -- -------------------------------------- - R tiene varios sistemas gráficos, pero **usaremos ggplot2** - *ggplot2* es un paquete de R para producir gráficos estadísticos. Bueno, en realidad **es todo un ecosistema**. Mira sus extensiones [[aquí]](https://exts.ggplot2.tidyverse.org/gallery/). - Es diferente porque tiene una **gramática subyacente**, basada en Grammar of Graphics (Wilkinson 2005). - Cuesta un poco (sólo un poco) más empezar, pero enseguida se ven los beneficios; además, es que **ahora mismo es el estándar**. --- class: inverse, center, middle background-image: url(data:image/png;base64,#imagenes/ss_06_img_01_ggplot2-hex.png) background-position: 95% 5% background-size: 10% ## Primeras ideas sobre *ggplot2* <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Primeras ideas para empezar a familiarizarnos con *ggplot2* --- background-image: url(data:image/png;base64,#imagenes/ss_06_img_01_ggplot2-hex.png) background-position: 98% 2% background-size: 5% ##### ¿qué vemos en el gráfico de abajo? .pull-left[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/unnamed-chunk-5-1.png" width="100%" style="display: block; margin: auto;" /> ] -- .pull-right[ <br> - gráfico de puntos - se representan 3 variables: - Sepal.Length en el **eje X** - Petal.Length en el **eje Y** - Species en el **color de los puntos** ] -- ##### Importante para entender ggplot2 [ 🌟 ] Un gráfico tiene 3 componentes principales: - los **datos** que se van a representar (.orange[ggplot()] ) - un conjunto de **propiedades estéticas asociadas a variables** del conjunto de datos. Por ejemplo, la posición en el eje X esta asociada a la variable Sepal.Length, el color de los puntos está asociado a los valores de la variable Species. ( .orange[aes()] ) - el **elemento geométrico que se va a representar**. En nuestro caso son puntos (.orange[geom_point()] ), pero podrían haber sido las lineas (.orange[geom_line()] ) o ... --- ##### sintaxis de ggplot2 [ 🌟 ] ``` r ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point() ``` <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/unnamed-chunk-6-1.png" width="40%" style="display: block; margin: auto;" /> -- ##### Forma más compacta de escribirlo ``` r ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point() ``` --- ##### poniendo los nombres de todos los argumentos ##### quedaría como .... ``` r ggplot(data = iris, mapping = aes(x = Sepal.Length, y = Petal.Length, color = Species) ) + geom_point() ``` -- <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/unnamed-chunk-9-1.png" width="58%" style="display: block; margin: auto;" /> --- count: false ##### Gráfico en slow-motion! .panel1-grafico-00-auto[ ``` r *iris ``` ] .panel2-grafico-00-auto[ ``` #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> 1 5.1 3.5 1.4 0.2 setosa #> 2 4.9 3.0 1.4 0.2 setosa #> 3 4.7 3.2 1.3 0.2 setosa #> 4 4.6 3.1 1.5 0.2 setosa #> 5 5.0 3.6 1.4 0.2 setosa #> 6 5.4 3.9 1.7 0.4 setosa #> 7 4.6 3.4 1.4 0.3 setosa #> 8 5.0 3.4 1.5 0.2 setosa #> 9 4.4 2.9 1.4 0.2 setosa #> 10 4.9 3.1 1.5 0.1 setosa #> 11 5.4 3.7 1.5 0.2 setosa #> 12 4.8 3.4 1.6 0.2 setosa #> 13 4.8 3.0 1.4 0.1 setosa #> 14 4.3 3.0 1.1 0.1 setosa #> 15 5.8 4.0 1.2 0.2 setosa #> 16 5.7 4.4 1.5 0.4 setosa #> 17 5.4 3.9 1.3 0.4 setosa #> 18 5.1 3.5 1.4 0.3 setosa #> 19 5.7 3.8 1.7 0.3 setosa #> 20 5.1 3.8 1.5 0.3 setosa #> 21 5.4 3.4 1.7 0.2 setosa #> 22 5.1 3.7 1.5 0.4 setosa #> 23 4.6 3.6 1.0 0.2 setosa #> 24 5.1 3.3 1.7 0.5 setosa #> 25 4.8 3.4 1.9 0.2 setosa #> 26 5.0 3.0 1.6 0.2 setosa #> 27 5.0 3.4 1.6 0.4 setosa #> 28 5.2 3.5 1.5 0.2 setosa #> 29 5.2 3.4 1.4 0.2 setosa #> 30 4.7 3.2 1.6 0.2 setosa #> 31 4.8 3.1 1.6 0.2 setosa #> 32 5.4 3.4 1.5 0.4 setosa #> 33 5.2 4.1 1.5 0.1 setosa #> 34 5.5 4.2 1.4 0.2 setosa #> 35 4.9 3.1 1.5 0.2 setosa #> 36 5.0 3.2 1.2 0.2 setosa #> 37 5.5 3.5 1.3 0.2 setosa #> 38 4.9 3.6 1.4 0.1 setosa #> 39 4.4 3.0 1.3 0.2 setosa #> 40 5.1 3.4 1.5 0.2 setosa #> 41 5.0 3.5 1.3 0.3 setosa #> 42 4.5 2.3 1.3 0.3 setosa #> 43 4.4 3.2 1.3 0.2 setosa #> 44 5.0 3.5 1.6 0.6 setosa #> 45 5.1 3.8 1.9 0.4 setosa #> 46 4.8 3.0 1.4 0.3 setosa #> 47 5.1 3.8 1.6 0.2 setosa #> 48 4.6 3.2 1.4 0.2 setosa #> 49 5.3 3.7 1.5 0.2 setosa #> 50 5.0 3.3 1.4 0.2 setosa #> 51 7.0 3.2 4.7 1.4 versicolor #> 52 6.4 3.2 4.5 1.5 versicolor #> 53 6.9 3.1 4.9 1.5 versicolor #> 54 5.5 2.3 4.0 1.3 versicolor #> 55 6.5 2.8 4.6 1.5 versicolor #> 56 5.7 2.8 4.5 1.3 versicolor #> 57 6.3 3.3 4.7 1.6 versicolor #> 58 4.9 2.4 3.3 1.0 versicolor #> 59 6.6 2.9 4.6 1.3 versicolor #> 60 5.2 2.7 3.9 1.4 versicolor #> 61 5.0 2.0 3.5 1.0 versicolor #> 62 5.9 3.0 4.2 1.5 versicolor #> 63 6.0 2.2 4.0 1.0 versicolor #> 64 6.1 2.9 4.7 1.4 versicolor #> 65 5.6 2.9 3.6 1.3 versicolor #> 66 6.7 3.1 4.4 1.4 versicolor #> 67 5.6 3.0 4.5 1.5 versicolor #> 68 5.8 2.7 4.1 1.0 versicolor #> 69 6.2 2.2 4.5 1.5 versicolor #> 70 5.6 2.5 3.9 1.1 versicolor #> 71 5.9 3.2 4.8 1.8 versicolor #> 72 6.1 2.8 4.0 1.3 versicolor #> 73 6.3 2.5 4.9 1.5 versicolor #> 74 6.1 2.8 4.7 1.2 versicolor #> 75 6.4 2.9 4.3 1.3 versicolor #> 76 6.6 3.0 4.4 1.4 versicolor #> 77 6.8 2.8 4.8 1.4 versicolor #> 78 6.7 3.0 5.0 1.7 versicolor #> 79 6.0 2.9 4.5 1.5 versicolor #> 80 5.7 2.6 3.5 1.0 versicolor #> 81 5.5 2.4 3.8 1.1 versicolor #> 82 5.5 2.4 3.7 1.0 versicolor #> 83 5.8 2.7 3.9 1.2 versicolor #> 84 6.0 2.7 5.1 1.6 versicolor #> 85 5.4 3.0 4.5 1.5 versicolor #> 86 6.0 3.4 4.5 1.6 versicolor #> 87 6.7 3.1 4.7 1.5 versicolor #> 88 6.3 2.3 4.4 1.3 versicolor #> 89 5.6 3.0 4.1 1.3 versicolor #> 90 5.5 2.5 4.0 1.3 versicolor #> 91 5.5 2.6 4.4 1.2 versicolor #> 92 6.1 3.0 4.6 1.4 versicolor #> 93 5.8 2.6 4.0 1.2 versicolor #> 94 5.0 2.3 3.3 1.0 versicolor #> 95 5.6 2.7 4.2 1.3 versicolor #> 96 5.7 3.0 4.2 1.2 versicolor #> 97 5.7 2.9 4.2 1.3 versicolor #> 98 6.2 2.9 4.3 1.3 versicolor #> 99 5.1 2.5 3.0 1.1 versicolor #> 100 5.7 2.8 4.1 1.3 versicolor #> 101 6.3 3.3 6.0 2.5 virginica #> 102 5.8 2.7 5.1 1.9 virginica #> 103 7.1 3.0 5.9 2.1 virginica #> 104 6.3 2.9 5.6 1.8 virginica #> 105 6.5 3.0 5.8 2.2 virginica #> 106 7.6 3.0 6.6 2.1 virginica #> 107 4.9 2.5 4.5 1.7 virginica #> 108 7.3 2.9 6.3 1.8 virginica #> 109 6.7 2.5 5.8 1.8 virginica #> 110 7.2 3.6 6.1 2.5 virginica #> 111 6.5 3.2 5.1 2.0 virginica #> 112 6.4 2.7 5.3 1.9 virginica #> 113 6.8 3.0 5.5 2.1 virginica #> 114 5.7 2.5 5.0 2.0 virginica #> 115 5.8 2.8 5.1 2.4 virginica #> 116 6.4 3.2 5.3 2.3 virginica #> 117 6.5 3.0 5.5 1.8 virginica #> 118 7.7 3.8 6.7 2.2 virginica #> 119 7.7 2.6 6.9 2.3 virginica #> 120 6.0 2.2 5.0 1.5 virginica #> 121 6.9 3.2 5.7 2.3 virginica #> 122 5.6 2.8 4.9 2.0 virginica #> 123 7.7 2.8 6.7 2.0 virginica #> 124 6.3 2.7 4.9 1.8 virginica #> 125 6.7 3.3 5.7 2.1 virginica #> 126 7.2 3.2 6.0 1.8 virginica #> 127 6.2 2.8 4.8 1.8 virginica #> 128 6.1 3.0 4.9 1.8 virginica #> 129 6.4 2.8 5.6 2.1 virginica #> 130 7.2 3.0 5.8 1.6 virginica #> 131 7.4 2.8 6.1 1.9 virginica #> 132 7.9 3.8 6.4 2.0 virginica #> 133 6.4 2.8 5.6 2.2 virginica #> 134 6.3 2.8 5.1 1.5 virginica #> 135 6.1 2.6 5.6 1.4 virginica #> 136 7.7 3.0 6.1 2.3 virginica #> 137 6.3 3.4 5.6 2.4 virginica #> 138 6.4 3.1 5.5 1.8 virginica #> 139 6.0 3.0 4.8 1.8 virginica #> 140 6.9 3.1 5.4 2.1 virginica #> 141 6.7 3.1 5.6 2.4 virginica #> 142 6.9 3.1 5.1 2.3 virginica #> 143 5.8 2.7 5.1 1.9 virginica #> 144 6.8 3.2 5.9 2.3 virginica #> 145 6.7 3.3 5.7 2.5 virginica #> 146 6.7 3.0 5.2 2.3 virginica #> 147 6.3 2.5 5.0 1.9 virginica #> 148 6.5 3.0 5.2 2.0 virginica #> 149 6.2 3.4 5.4 2.3 virginica #> 150 5.9 3.0 5.1 1.8 virginica ``` ] --- count: false ##### Gráfico en slow-motion! .panel1-grafico-00-auto[ ``` r iris %>% *ggplot() ``` ] .panel2-grafico-00-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-00_auto_02_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### Gráfico en slow-motion! .panel1-grafico-00-auto[ ``` r iris %>% ggplot() + * aes(x = Sepal.Length) ``` ] .panel2-grafico-00-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-00_auto_03_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### Gráfico en slow-motion! .panel1-grafico-00-auto[ ``` r iris %>% ggplot() + aes(x = Sepal.Length) + * aes(y = Petal.Length) ``` ] .panel2-grafico-00-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-00_auto_04_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### Gráfico en slow-motion! .panel1-grafico-00-auto[ ``` r iris %>% ggplot() + aes(x = Sepal.Length) + aes(y = Petal.Length) + * aes(color = Species) ``` ] .panel2-grafico-00-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-00_auto_05_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### Gráfico en slow-motion! .panel1-grafico-00-auto[ ``` r iris %>% ggplot() + aes(x = Sepal.Length) + aes(y = Petal.Length) + aes(color = Species) + * geom_point() ``` ] .panel2-grafico-00-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-00_auto_06_output-1.png" width="95%" style="display: block; margin: auto;" /> ] <style> .panel1-grafico-00-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-grafico-00-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-grafico-00-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> -- <br> ##### La forma habitual(!) de escribirlo es: ``` r ggplot(data = iris, aes(Sepal.Length, Petal.Length, color = Species)) + geom_point() ``` --- ##### IMAGINA que hacen las siguientes instrucciones. Después las ejecutas. ``` r #- Fíjate: sólo hay 2 variables en aes() -- ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point() #- Fíjate: ahora usamos geom_line() -- ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_line() #- Fíjate: Ahora usamos 2 geom_xx() -- ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point() + geom_smooth() #- Fíjate: volvemos a tener 3 variables en aes() -- ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point() #- Fíjate: ahora hay argumentos dentro de geom_point() -- #- Uno de ellos es `color` ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point(color = "red", size = 2, alpha = 0.2) ``` --- class: inverse, center, middle background-image: url(data:image/png;base64,#imagenes/ss_06_img_01_ggplot2-hex.png) background-position: 95% 5% background-size: 10% ### Entendiendo un poco más *ggplot2* <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> #### Ya tenemos las primeras ideas sobre ggplot2, ahora se trata de profundizar un poco para que podamos tener más control y flexibilidad al hacer nuestros gráficos. --- ##### vamos a profundizar un poco más en *ggplot2* Es importante que veas que estas 3 expresiones **hacen el mismo gráfico**: ``` r ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point() ggplot(data = iris) + geom_point(aes(x = Sepal.Length, y = Petal.Length)) ggplot() + geom_point(data = iris, aes(x = Sepal.Length, y = Petal.Length)) ``` -- <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/unnamed-chunk-13-1.png" width="46%" style="display: block; margin: auto;" /> -- ------------------------------- - Bueno, sí ¿Y que más da? Pues importa y muuuuccho. - Esto **nos va a dar mucha flexibilidad**/control a nuestros gráficos. Lo veremos --- ##### ¿qué hacen estas 3 expresiones? ``` r ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point() + geom_smooth() ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point(aes(color = Species)) + geom_smooth() ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point() + geom_smooth(aes(color = Species)) ``` -- <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/unnamed-chunk-16-1.png" width="100%" style="display: block; margin: auto;" /> --- ##### ¿por qué no funcionan esta expresión? <br> ``` r ggplot() + geom_point(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_line(aes(x = Sepal.Length, y = Petal.Length)) #> Error in `geom_line()`: #> ! Problem while computing aesthetics. #> ℹ Error occurred in the 2nd layer. #> Caused by error: #> ! objeto 'Sepal.Length' no encontrado ``` --- ##### Un ejemplo un poco rarito ``` r #- creamos iris_2 con los lirios que no son "setosa" iris_2 <- iris %>% filter(Species != "setosa") ``` <br> ``` r #- empezamos un plot ggplot() + #- usamos geom_point() con iris geom_point(data = iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + #- usamos un segundo geom pero con otros datos(iris_2) geom_smooth(data = iris_2, aes(x = Sepal.Length, y = Petal.Length) ) ``` -- <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/unnamed-chunk-20-1.png" width="60%" style="display: block; margin: auto;" /> --- ##### un ejemplo más - Para ir acabando con la “filosofía”/sintaxis/gramática de ggplot2 **intenta imaginar** que gráficos hacen las 4 expresiones de más abajo. - Si no puedes, recuerda que siempre puedes ejecutar las ordenes en el ordenador. Fíjate sobre todo en la **tercera expresión** ``` r ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) + geom_point() + geom_smooth() ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point() + geom_smooth() ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point(color = "purple") + geom_smooth() ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species)) + geom_point() + geom_smooth(color = "brown") ``` --- ##### *the aesthetic parameters* de geom_point() - Hemos estado haciendo gráficos de puntos con `geom_point()`. - Para `geom_point()` hemos usado principalmente los parámetros/estéticas: - `x` - `y` - `color` <br> - Pero también podemos usar: - `shape`, `fill`, `alpha` y `size` <br> - Veámoslo --- count: false ##### parámetros/estéticas de geom_point()! .panel1-grafico-01-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos *ggplot(data = iris, * aes(x = Sepal.Length, * y = Petal.Length)) ``` ] .panel2-grafico-01-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-01_auto_01_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### parámetros/estéticas de geom_point()! .panel1-grafico-01-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + #- el elemento geométrico: puntos * geom_point() ``` ] .panel2-grafico-01-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-01_auto_02_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### parámetros/estéticas de geom_point()! .panel1-grafico-01-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + #- el elemento geométrico: puntos geom_point() + #- color dentro de aes asociada a Species * geom_point(aes(color = Species)) ``` ] .panel2-grafico-01-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-01_auto_03_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### parámetros/estéticas de geom_point()! .panel1-grafico-01-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + #- el elemento geométrico: puntos geom_point() + #- color dentro de aes asociada a Species geom_point(aes(color = Species)) + #- color fuera de aes * geom_point(color = "purple") ``` ] .panel2-grafico-01-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-01_auto_04_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### parámetros/estéticas de geom_point()! .panel1-grafico-01-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + #- el elemento geométrico: puntos geom_point() + #- color dentro de aes asociada a Species geom_point(aes(color = Species)) + #- color fuera de aes geom_point(color = "purple") ``` ] .panel2-grafico-01-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-01_auto_05_output-1.png" width="95%" style="display: block; margin: auto;" /> ] <style> .panel1-grafico-01-auto { color: black; width: 58.8%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-grafico-01-auto { color: black; width: 39.2%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-grafico-01-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false ##### más estéticas de geom_point() .panel1-grafico-02-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos *ggplot(data = iris, * aes(x = Sepal.Length, * y = Petal.Length)) ``` ] .panel2-grafico-02-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-02_auto_01_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### más estéticas de geom_point() .panel1-grafico-02-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + #- shape dentro de aes , size = 3 fuera de aes * geom_point(aes(shape = Species), * size = 3) ``` ] .panel2-grafico-02-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-02_auto_02_output-1.png" width="95%" style="display: block; margin: auto;" /> ] --- count: false ##### más estéticas de geom_point() .panel1-grafico-02-auto[ ``` r #- las estéticas X e Y son necesarias #- para hacer un gráfico de puntos ggplot(data = iris, aes(x = Sepal.Length, y = Petal.Length)) + #- shape dentro de aes , size = 3 fuera de aes geom_point(aes(shape = Species), size = 3) + #- shape = 4, size = 6: fuera de aes * geom_point(shape = 4, * size = 6) ``` ] .panel2-grafico-02-auto[ <img src="data:image/png;base64,#slides_06_ggplot2_A_files/figure-html/grafico-02_auto_03_output-1.png" width="95%" style="display: block; margin: auto;" /> ] <style> .panel1-grafico-02-auto { color: black; width: 58.8%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-grafico-02-auto { color: black; width: 39.2%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-grafico-02-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ##### veremos alguna vez otros gráficos? - SÍ!!!! pero aún falta un poco, hemos de ver más cosas (y sí, usando `iris`). - Si no puedes esperarte ve a está [Graph gallery](https://exts.ggplot2.tidyverse.org/gallery/) <br> -- ##### para hacer otros gráficos tendremos que usar otros **geom_xx()** - **Por ejemplo**: geom_line(), geom_bar(), geom_col(), geom_density(), geom_path(), geon_map(), geom_raster(), geom_rug() ... y muchos más <br> -- ##### *the aesthetic parameters* de cada geom_xx() - Cuando empecemos a hacer otros tipos de gráficos será de utilidad conocer que parámetros tiene, que aesthetics admite cada `geom_xx()`. - Podremos verlos consultando la ayuda de cada `geom`, pero también puedes verlas [aquí](https://www.yihanwu.ca/post/geoms-and-aesthetic-parameters/) - Por ejemplo, **geom_point()** ya sabemos que admite las siguientes "estéticas": x, y, color, size, shape, fill, alpha ... --- class: inverse, center, middle background-image: url(data:image/png;base64,#imagenes/ss_06_img_01_ggplot2-hex.png) background-position: 95% 5% background-size: 10% ### Más elementos de *ggplot2* <html><div style='float:left'></div><hr color='#EB811B' size=1px width=796px></html> ###### Como puedes imaginar, aún tenemos que ver más elementos de ggplot2: los títulos y leyendas, los ejes, el tema, coordenadas, etc… vamos a ello!! --- ##### más elementos de un ggplot() - Ya hemos presentado los principales elementos de los gráficos hechos con ggplot2, pero es evidente que **un gráfico tiene más elementos**. - Lógicamente, **hay que conocerlos un poco** para poder ajustar los gráficos a nuestras necesidades y mejorar su calidad. -- -------------------- Veremos algo de los siguientes elementos: - Títulos del gráfico - Themes - Small multiples (o Facetting) - Anotaciones - Ejes - Escalas - Stats (transformaciones estadísticas) - Position adjustments - Coordenadas ---------------------------------- .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt5[ Será en las siguientes slides]