Está en la página 1de 244

Referencia rapida ggplot2

Selva Prabhakaran

https://ggplot2.tidyverse.org/index.html
Todos los ejemplos (color, forma, texto, leyenda, config. ejes, …etc. se hacen sobre un
diagrama de dispersion que se podrian extender a otros tipos de graficos ( cajas, barra,
violin, … etc)
ggplot basico, añadir grafico , tamaño, forma, etiquetas, cuadrícula, graficos multiples, leyenda,linea de suavizado, …(bajo un grafico de Grafico de Dispersion)
Añadir grafico de Barras
Añadir grafico de Lineas
Añadir grafico de boxplot y violin
Añadir grafico de densidad
Añadir grafico de azulejos

Info Cuadro esquema “+ geom”


Info tipo de lineas
Info formas Colores
Info formas puntos
Añadir Grafico de Dispersion
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
library(ggplot2)
ggplot(diamonds, aes(x=carat, y=price))
library(ggplot2)
ggplot(diamonds, aes(x=carat, y=price))
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ geom_point()
+ geom_point()
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ geom_point(size=5)
+ geom_point(size=5)

* Info formas
+ geom_point(shape=1)
+ geom_point(size=5)

* Info formas
+ geom_point(shape=1)

* Info color
+ geom_pointcolor="steelblue”)
+ geom_point(size=5)

* Info formas
+ geom_point(shape=1)

* Info color
+ geom_pointcolor=("steelblue”)

+ geom_point(shape=21, colour = "red",fill="black", size = 5,stroke=4)


ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ geom_point(aes(size=carat, shape=cut, color=color, stroke=carat))
+ geom_point(aes(size=carat, shape=cut, color=color, stroke=carat))
El tamaño del punto varia segun el peso (carat), y la forma del punto en funcion de la variable cut
+ geom_point(aes(size=carat, shape=cut, color=color, stroke=carat))
El tamaño del punto varia segun el peso (carat), y la forma del punto en funcion de la variable cut
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ scale_colour_manual(name='Legend', values=c('D'='grey', 'E'='red', 'F'='blue',
'G'='yellow', 'H'='black', 'I'='green', 'J'='firebrick'))
+ scale_colour_manual(name='Legend', values=c('D'='grey', 'E'='red', 'F'='blue',
'G'='yellow', 'H'='black', 'I'='green', 'J'='firebrick'))
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ labs(title="Diamantes", subtitle="Junio 2019", y="Precio", x="Peso", caption="Fuentes:···")
+ labs(title="Diamantes", subtitle="Junio 2019", y="Precio", x="Peso", caption="Fuentes:···")
+ labs(title="Diamantes", subtitle="Junio 2019", y="Precio", x="Peso", caption="Fuentes:···")
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ theme(plot.title=element_text(size=25), axis.title.x=element_text(size=20),
axis.title.y=element_text(size=20),text=element_text(color="red"))
+ theme(plot.title=element_text(size=25), axis.title.x=element_text(size=20),
axis.title.y=element_text(size=20),text=element_text(color="red"))
+labs(title="Titulo\nSegunda linea del titulo")
+ theme(plot.title=element_text(face="italic", color="orange", lineheight=5)
+labs(title="Titulo\nSegunda linea del titulo")
+ theme(plot.title=element_text(face="italic", color="orange", lineheight=5)
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+theme(axis.text.x=element_text(size=15), axis.text.y=element_text(size=15))
+theme(axis.text.x=element_text(size=15), axis.text.y=element_text(size=15))
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
Método 1: borrando los puntos fuera del rango
Método 1: borrando los puntos fuera del rango

Observese que la mayoría de los puntos se


encuentran concentrados en la parte inferior de
la tabla, lo que realmente no se ve bien. Por lo
que es necesario cambiar los límites del eje Y.
Método 1: borrando los puntos fuera del rango
+ xlim(c(0, 0.1)) + ylim(c(0, 1000000))
Observese que la mayoría de los puntos se
encuentran concentrados en la parte inferior de
la tabla, lo que realmente no se ve bien. Por lo
que es necesario cambiar los límites del eje Y.
Método 1: borrando los puntos fuera del rango
+ xlim(c(0, 0.1)) + ylim(c(0, 1000000))
Observese que la mayoría de los puntos se
encuentran concentrados en la parte inferior de
la tabla, lo que realmente no se ve bien. Por lo
que es necesario cambiar los límites del eje Y.
Método 1: borrando los puntos fuera del rango
+ xlim(c(0, 0.1)) + ylim(c(0, 1000000))
La línea de mejor ajuste se volvió más horizontal
Observese que la mayoría de los puntos se
debido a que los puntos fuera del rango especificado
encuentran concentrados en la parte inferior de
se eliminan y no se considerarán al dibujar la línea
la tabla, lo que realmente no se ve bien. Por lo
Esta función puede ser útil cuando desee saber cómo
que es necesario cambiar los límites del eje Y.
cambiaría la línea de mejor ajuste cuando se
eliminen algunos valores extremos (o valores
atípicos).
Método 1: borrando los puntos fuera del rango
+ xlim(c(0, 0.1)) + ylim(c(0, 1000000))
La línea de mejor ajuste se volvió más horizontal
Observese que la mayoría de los puntos se
debido a que los puntos fuera del rango especificado
encuentran concentrados en la parte inferior de
se eliminan y no se considerarán al dibujar la línea
la tabla, lo que realmente no se ve bien. Por lo
Esta función puede ser útil cuando desee saber cómo
que es necesario cambiar los límites del eje Y.
cambiaría la línea de mejor ajuste cuando se
eliminen algunos valores extremos (o valores
atípicos).
Método 2: Acercamiento
Método 2: Acercamiento

Consiste en hacer zoom en la región de


interés sin eliminar los puntos.
Esto se hace utilizando coord_cartesian()
Método 2: Acercamiento
+ coord_cartesian(xlim=c(0,0.1), ylim=c(0, 1000000))
Consiste en hacer zoom en la región de
interés sin eliminar los puntos.
Esto se hace utilizando coord_cartesian()
Método 2: Acercamiento
+ coord_cartesian(xlim=c(0,0.1), ylim=c(0, 1000000))
Consiste en hacer zoom en la región de
interés sin eliminar los puntos.
Esto se hace utilizando coord_cartesian()
Método 2: Acercamiento
+ coord_cartesian(xlim=c(0,0.1), ylim=c(0, 1000000))
Consiste en hacer zoom en la región de Dado que todos los puntos fueron
interés sin eliminar los puntos. considerados, la línea de mejor ajuste
Esto se hace utilizando coord_cartesian() no cambió.
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ scale_x_discrete(labels=c("cero", "uno", "dos", "tres", "cuatro", "cinco")) +
scale_y_continuous(breaks=seq(0, 20000, 4000))
+ scale_x_discrete(labels=c("cero", "uno", "dos", "tres", "cuatro", "cinco")) +
scale_y_continuous(breaks=seq(0, 20000, 4000))
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.

Paso 1: establezca breaks


Usamos scale_x_continuous porque,
la variable del eje X es una variable
continua. Si hubiera sido una variable
de fecha, usariamos en su lugar
scale_x_date .
Para el eje Y hay disponible un
equivalente scale_y_continuous()
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.
+ scale_x_continuous(breaks=seq(0, 0.1, 0.01))

Paso 1: establezca breaks


Usamos scale_x_continuous porque,
la variable del eje X es una variable
continua. Si hubiera sido una variable
de fecha, usariamos en su lugar
scale_x_date .
Para el eje Y hay disponible un
equivalente scale_y_continuous()
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.
+ scale_x_continuous(breaks=seq(0, 0.1, 0.01))

Paso 1: establezca breaks


Usamos scale_x_continuous porque,
la variable del eje X es una variable
continua. Si hubiera sido una variable
de fecha, usariamos en su lugar
scale_x_date .
Para el eje Y hay disponible un
equivalente scale_y_continuous()
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.

Paso 2: labels toma un vector de


la misma longitud que breaks.
Lo demostraremos configurando
los labels alfabetos de a a k
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.
+ scale_x_continuous(breaks=seq(0, 0.1, 0.01), labels = letters[1:11])

Paso 2: labels toma un vector de


la misma longitud que breaks.
Lo demostraremos configurando
los labels alfabetos de a a k
Cambiar el texto de los ejes X e Y y su ubicación implica dos aspectos: breaks y labels.
+ scale_x_continuous(breaks=seq(0, 0.1, 0.01), labels = letters[1:11])

Paso 2: labels toma un vector de


la misma longitud que breaks.
Lo demostraremos configurando
los labels alfabetos de a a k
Girar el texto del eje
Girar el texto del eje
+ theme(axis.text.x=element_text(angle=45), axis.text.y=element_text(angle=45))
Girar el texto del eje
+ theme(axis.text.x=element_text(angle=45), axis.text.y=element_text(angle=45))
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
invertir la escala del eje X
invertir la escala del eje X
+ scale_x_reverse()
invertir la escala del eje X
+ scale_x_reverse()
Flip los ejes X , Y
Flip los ejes X , Y
+ coord_flip()
Flip los ejes X , Y
+ coord_flip()
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ theme(panel.background = element_rect(fill = 'springgreen'),
panel.grid.major = element_line(colour = "firebrick", size=3),
panel.grid.minor = element_line(colour = "blue", size=1))
+ theme(panel.background = element_rect(fill = 'springgreen'),
panel.grid.major = element_line(colour = "firebrick", size=3),
panel.grid.minor = element_line(colour = "blue", size=1))
En lugar de cambiar los componentes individualmente podemos cambiar el tema en sí mismo
usando temas precompilados. La página de ayuda ?theme_bw muestra todos los temas
incorporados disponibles.
Esto se puede hacer de dos maneras.
* Usando theme_set () para establecer el tema antes de dibujar el ggplot. Tenga en cuenta que
esta configuración afectará a todas las parcelas futuras.
* Dibujando antes el ggplot y luego agreguando la configuración general del tema
+ theme_classic() +
labs(subtitle="Classic Theme")
+ theme_classic() +
labs(subtitle="Classic Theme")
+ theme_classic() + + theme_classic() +
labs(subtitle="Classic Theme") labs(subtitle="Classic Theme")
+ theme_classic() + + theme_classic() +
labs(subtitle="Classic Theme") labs(subtitle="Classic Theme")
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
+ theme(plot.background=element_rect(fill="yellowgreen"),
plot.margin = unit(c(2, 4, 1, 3), "cm"))
# top, right, bottom, left
+ theme(plot.background=element_rect(fill="yellowgreen"),
plot.margin = unit(c(2, 4, 1, 3), "cm"))
# top, right, bottom, left
Añadir anotación
Añadir anotación
library(grid)
> miNota = grobTree(textGrob("Mi texto incorp", x=0.8, y=0.2, gp=gpar(col="firebrick",
fontsize=25, fontface="bold")))
> gg3 + annotation_custom(miNota)
Añadir anotación
library(grid)
> miNota = grobTree(textGrob("Mi texto incorp", x=0.8, y=0.2, gp=gpar(col="firebrick",
fontsize=25, fontface="bold")))
> gg3 + annotation_custom(miNota)
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
Dos o mas graficos en la misma hoja
Dos o mas graficos en la misma hoja

“Grafico p1”
Dos o mas graficos en la misma hoja

“Grafico p1”

“Grafico p2”
Dos o mas graficos en la misma hoja

“Grafico p1”
library(gridExtra)
> grid.arrange(p1, p2, ncol=2)

“Grafico p2”
Dos o mas graficos en la misma hoja

“Grafico p1”
library(gridExtra)
> grid.arrange(p1, p2, ncol=2)

“Grafico p2”
Multiples graficos en la misma hoja
+ facet_grid(color ~ cut)
+ facet_grid(color ~ cut)
Escalas libres de ejes X e Y

Al configurar scales='free', las escalas de los ejes X e Y se liberan.


scales='free_x‘ para liberar solo el eje X y scales='free_y'para liberar solo el eje Y.
+ facet_wrap(color ~ cut, scales="free_x") # para liberar solo el eje X
+ facet_wrap(color ~ cut, scales="free_x") # para liberar solo el eje X
+ facet_wrap(color ~ cut, scales="free_y") # para liberar solo el eje Y
+ facet_wrap(color ~ cut, scales="free_y") # para liberar solo el eje Y
+ facet_wrap(color ~ cut, scales="free") # para liberar ambos ejes
+ facet_wrap(color ~ cut, scales="free") # para liberar ambos ejes
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
Ocultar la leyenda
Ocultar la leyenda

+ theme(legend.position="none“)
Ocultar la leyenda

+ theme(legend.position="none“)
Quitar el título de la leyenda
Quitar el título de la leyenda
> + theme(legend.title=element_blank())
Quitar el título de la leyenda
> + theme(legend.title=element_blank())
Cambiar el título de la leyenda
Cambiar el título de la leyenda
+ scale_color_discrete(name="Mi Leyenda")
Cambiar el título de la leyenda
+ scale_color_discrete(name="Mi Leyenda")
Cambiar posición de leyenda
Cambiar posición de leyenda
En el exterior
Cambiar posición de leyenda
En el exterior
+ theme(legend.position="top") # top / bottom / left / right
Cambiar posición de leyenda
En el exterior
+ theme(legend.position="top") # top / bottom / left / right
Cambiar posición de leyenda
Cambiar posición de leyenda
en el interior
Cambiar posición de leyenda
en el interior
+ theme(legend.justification=c(1,0), legend.position=c(1,0))
Cambiar posición de leyenda
en el interior
+ theme(legend.justification=c(1,0), legend.position=c(1,0))
# legend justification es el punto para la leyenda, considerando la esquina
inferior izquierda el punto (0,0)
Cambiar posición de leyenda
en el interior
+ theme(legend.justification=c(1,0), legend.position=c(1,0))
# legend justification es el punto para la leyenda, considerando la esquina
inferior izquierda el punto (0,0)
Ejemplo ilustrativo de cambios varios
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
#controla el tamaño y color del TITULO de la leyenda
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
#controla el tamaño y color de relleno del TEXTO de la leyenda
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
#controla el color, tamaño de las cajas , asi como el tamaño y forma de los simbolos de las cajas
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
Ejemplo ilustrativo de cambios varios
+ theme(legend.title = element_text(size=20, color = "firebrick"), legend.text =
element_text(size=15), legend.key=element_rect(fill='steelblue')) + guides(colour =
guide_legend(override.aes = list(size=2, shape=4, stroke=2))) # legend title color and size, box
color, symbol color, size and shape.
ggplot basico: definimos conjunto de datos y ejes
Añadimos grafico de dispersion
Cambio estatico de tamaño de punto, forma, color y grosor de contorno
Cambio dinámico del tamaño de punto, forma, color … en funcion de una variable
Cambiar manualmente el color del punto
Titulo, subtitulos del grafico y de los ejes
Tamaño, color, tipo de texto en los titulos
Tamaño texto de los ejes
Ajustar los límites de los ejes X e Y
Cambiar y girar las etiquetas de los ejes X e Y
Invertir la escala de un eje y intercambiar los ejes
Líneas de cuadrícula y color fondo de panel
Margenes y anotaciones
Graficos multiples
Leyenda
Añadir linea de suavizado, linea horizontal y vertical
Añadir línea de suavizado
Añadir línea de suavizado
+ geom_smooth(aes(color=color)) #El metodo empelado puede ser- 'lm', 'loess', 'gam‘
En este caso se añade una linea por cada color
Añadir línea de suavizado
+ geom_smooth(aes(color=color)) #El metodo empelado puede ser- 'lm', 'loess', 'gam‘
En este caso se añade una linea por cada color
Añadir línea horizontal / vertical
Añadir línea horizontal / vertical
# linetypes: solid, dashed, dotted, dotdash, longdash and twodash
Añadir línea horizontal / vertical
# linetypes: solid, dashed, dotted, dotdash, longdash and twodash
+ geom_hline(yintercept=5000, size=2, linetype="dotted", color="blue")
+ geom_hline(yintercept=5000, size=2, linetype="dotted", color="blue")
+ geom_vline(xintercept=4, size=2, color="firebrick")
+ geom_vline(xintercept=4, size=2, color="firebrick")
Añadir un segmento
Añadir un segmento
+ geom_segment(aes(x=4, y=5000, xend=4, yend=10000, size=2, lineend="round"))
Añadir un segmento
+ geom_segment(aes(x=4, y=5000, xend=4, yend=10000, size=2, lineend="round"))
+ geom_segment(aes(x=carat, y=price, xend=carat, yend=price-500, color=color), size=2) +
coord_cartesian(xlim=c(3, 5))
+ geom_segment(aes(x=carat, y=price, xend=carat, yend=price-500, color=color), size=2) +
coord_cartesian(xlim=c(3, 5))
lty: Cambia el tipo de línea
lwd: Cambia el grosor de línea
Nombres predefinidos de colores y paletas
> colors()
[1] "white"
[2] "aliceblue"
[3] "antiquewhite"
[4] "antiquewhite1"
[5] "antiquewhite2"
[6] "antiquewhite3"
[7] "antiquewhite4"
[8] "aquamarine"
[9] "aquamarine1"
.. . .. ..

[651] "whitesmoke"
[652] "yellow"
[653] "yellow1"
Y aquí algunas sugerencias para colores y fondos de aspecto agradable:

steelblue (points and lines) orangered (point, lines, fills)


firebrick (point and lines) olivedrab (points, lines, fills)
springgreen (fills) midnightblue (lines)
violetred (fills) mediumvioletred (points, lines, fills)
tomato (fills) maroon (points, lines, fills)
skyblue (bg) limegreen (fills)
sienna (points, lines) lawngreen (fills)
slateblue (fills) forestgreen (lines, fills)
seagreen (points, lines, fills) dodgerblue (fills, bg)
sandybrown (fills) dimgray (grids, secondary bg)
salmon (fills) deeppink (fills)
saddlebrown (lines) darkred (lines, points)
royalblue (fills)
Ver paleta de colores
library(RColorBrewer)
> display.brewer.all(n=20, exact.n=FALSE) # display available color palettes
> display.brewer.all(n=3, exact.n=FALSE)
Añadir grafico de Barras
ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
Variable VS: V shape :0 Straight: 1
library("ggplot2", lib.loc="~/R/win-library/3.5")
> gg<- ggplot(mtcars, aes(x=cyl ))
library("ggplot2", lib.loc="~/R/win-library/3.5")
> gg<- ggplot(mtcars, aes(x=cyl))
ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
> gg + geom_bar() # frequency table
> gg + geom_bar() # frequency table
> gg + geom_bar() # frequency table
ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
> gg + geom_bar()
> gg + geom_bar(aes(fill=factor(vs)))
> gg + geom_bar(aes(fill=factor(vs)))
> gg + geom_bar(aes(fill=factor(vs))) > gg + geom_bar(aes(fill=factor(vs)))
> gg + geom_bar(aes(fill=factor(vs))) > gg + geom_bar(position="dodge",aes(fill=factor(vs))))
> gg + geom_bar(aes(fill=factor(vs))) > gg + geom_bar(position="dodge",aes(fill=factor(vs))))
> gg + geom_bar(aes(fill=factor(vs))) > gg + geom_bar(position="dodge",aes(fill=factor(vs))))

Todos los motores de 8 cilindros son V-shape


De 4 cilindros 10 son “straight” y 1 “v shape”
gg + geom_bar( )
gg + geom_bar(aes(fill=factor(gear)))
gg + geom_bar(aes(fill=factor(gear)))
ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
mpg: consumo en millas/galones
cyl: numero de cilindros
mpg: consumo en millas/galones *agregate: Divide los datos en subconjuntos, y
cyl: numero de cilindros calcula las estadísticas de resumen de cada uno
mpg: consumo en millas/galones *agregate: Divide los datos en subconjuntos, y
cyl: numero de cilindros calcula las estadísticas de resumen de cada uno
> df<- aggregate(mtcars$mpg, by=list(mtcars$cyl), FUN=mean)
mpg: consumo en millas/galones *agregate: Divide los datos en subconjuntos, y
cyl: numero de cilindros calcula las estadísticas de resumen de cada uno
> df<- aggregate(mtcars$mpg, by=list(mtcars$cyl), FUN=mean)
> names(df) <- c("cilindrada", "consumo") #renombramos variables
mpg: consumo en millas/galones *agregate: Divide los datos en subconjuntos, y
cyl: numero de cilindros calcula las estadísticas de resumen de cada uno
> df<- aggregate(mtcars$mpg, by=list(mtcars$cyl), FUN=mean)
> names(df) <- c("cilindrada", "consumo") #renombramos variables
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity")
mpg: consumo en millas/galones *agregate: Divide los datos en subconjuntos, y
cyl: numero de cilindros calcula las estadísticas de resumen de cada uno
> df<- aggregate(mtcars$mpg, by=list(mtcars$cyl), FUN=mean)
> names(df) <- c("cilindrada", "consumo") #renombramos variables
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity")

Consumo medio por cilindrada


mpg: consumo en millas/galones *agregate: Divide los datos en subconjuntos, y
cyl: numero de cilindros calcula las estadísticas de resumen de cada uno
> df<- aggregate(mtcars$mpg, by=list(mtcars$cyl), FUN=mean)
> names(df) <- c("cilindrada", "consumo") #renombramos variables
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity")

Consumo medio por cilindrada


ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
Añadimos color en funcion de la variable “cilindrada” al grafico
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity")

Consumo medio por cilindrada


Añadimos color en funcion de la variable “cilindrada” al grafico
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada))

Consumo medio por cilindrada


ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
Personalizamos color en funcion de la variable “cilindrada” al grafico
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada))

Consumo medio por cilindrada


Personalizamos color en funcion de la variable “cilindrada” al grafico
> df$cilindrada <- as.factor(df$cilindrada)

Consumo medio por cilindrada


Personalizamos color en funcion de la variable “cilindrada” al grafico
> df$cilindrada <- as.factor(df$cilindrada)
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada))

Consumo medio por cilindrada


Personalizamos color en funcion de la variable “cilindrada” al grafico
> df$cilindrada <- as.factor(df$cilindrada)
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada)) +
scale_fill_manual(values=c("4"="steelblue", "6"="firebrick", "8"="darkgreen"))

Consumo medio por cilindrada


Personalizamos color en funcion de la variable “cilindrada” al grafico
> df$cilindrada <- as.factor(df$cilindrada)
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada)) +
scale_fill_manual(values=c("4"="steelblue", "6"="firebrick", "8"="darkgreen"))

Consumo medio por cilindrada


Variamos el ancho de la barras
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada)) +
scale_fill_manual(values=c("4"="steelblue", "6"="firebrick", "8"="darkgreen"))

Consumo medio por cilindrada


Variamos el ancho de la barras
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada) ,width = 0.25) )
+ scale_fill_manual(values=c("4"="steelblue", "6"="firebrick", "8"="darkgreen"))

Consumo medio por cilindrada


Variamos el ancho de la barras
> ggplot(df, aes(x=cilindrada, y=consumo)) + geom_bar(stat = "identity" , aes(fill=cilindrada) ,width = 0.25) )
+ scale_fill_manual(values=c("4"="steelblue", "6"="firebrick", "8"="darkgreen"))

Consumo medio por cilindrada


ggplot basico: definimos conjunto de datos y ejes
Añadimos la frecuencia absoluta en grafico de barras
Desglosamos en colores los valores de una variable
Reflejo de un estadistico (ej. media) de una variable en funcion de otra
Añadimos color en funcion de la variable “cilindrada” al grafico
Personalizamos el color y ancho de las barras
Cambiar color de la barras por paletas de colores
> ggplot(mtcars, aes(x=cyl, y=carb, fill=factor(cyl))) + geom_bar(stat="identity")
> ggplot(mtcars, aes(x=cyl, y=carb, fill=factor(cyl))) + geom_bar(stat="identity")
library(RColorBrewer)
library(RColorBrewer)
> ggplot(mtcars, aes(x=cyl, y=carb, fill=factor(cyl))) + geom_bar(stat="identity")
library(RColorBrewer)
> ggplot(mtcars, aes(x=cyl, y=carb, fill=factor(cyl))) + geom_bar(stat="identity")
+ scale_fill_brewer(palette="Reds")
library(RColorBrewer)
> ggplot(mtcars, aes(x=cyl, y=carb, fill=factor(cyl))) + geom_bar(stat="identity")
+ scale_fill_brewer(palette="Reds")
Añadir grafico de Lineas
Añadir grafico de boxplot y violin
Añadir grafico de densidad
Añadir grafico de azulejos
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
> df <- reshape2::melt(corr) #creamos la funcion df
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
> df <- reshape2::melt(corr) #creamos la funcion df
> ggplot(df, aes(x=Var1, y=Var2))
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
> df <- reshape2::melt(corr) #creamos la funcion df
> ggplot(df, aes(x=Var1, y=Var2))
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
> df <- reshape2::melt(corr) #creamos la funcion df
> ggplot(df, aes(x=Var1, y=Var2))
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
> df <- reshape2::melt(corr) #creamos la funcion df
> ggplot(df, aes(x=Var1, y=Var2))
Añadir grafico de azulejos
> library("ggplot2", lib.loc="~/R/win-library/3.5")
> library("reshape2", lib.loc="~/R/win-library/3.5")
> corr <- round(cor(mtcars), 2) #redondeamos a dos las correlaciones de los datos
> df <- reshape2::melt(corr) #creamos la funcion df
> ggplot(df, aes(x=Var1, y=Var2))
> ggplot(df, aes(x=Var1, y=Var2))
> ggplot(df, aes(x=Var1, y=Var2))
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
+ theme_bw()
+ geom_text(aes(label=value, size=value), color="white")
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
+ theme_bw()
+ geom_text(aes(label=value, size=value), color="white")
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
+ theme_bw()
+ geom_text(aes(label=value, size=value), color="white")
+ labs(title="mtcars - Correlation plot")
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
+ theme_bw()
+ geom_text(aes(label=value, size=value), color="white")
+ labs(title="mtcars - Correlation plot")
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
+ theme_bw()
+ geom_text(aes(label=value, size=value), color="white")
+ labs(title="mtcars - Correlation plot")
+ theme(text=element_text(size=20), legend.position="none")
> ggplot(df, aes(x=Var1, y=Var2 , fill=value, label=value))
+ geom_tile()))
+ theme_bw()
+ geom_text(aes(label=value, size=value), color="white")
+ labs(title="mtcars - Correlation plot")
+ theme(text=element_text(size=20), legend.position="none")

También podría gustarte