Cheat Sheet R - Graficos Con Ggplot2
Cheat Sheet R - Graficos Con Ggplot2
Cheat Sheet R - Graficos Con Ggplot2
Geoms - Funciones geom se utilizan para visualizar resultados. Asigne variables a las propiedades estéticas del geom. Cada geom forma una capa.
b + geom_curve(aes(yend
data points, use the geom’s aesthetic properties
a + geom_histogram(binwidth = 5)
)
0 1 3 4 0 1 3 4
data geom
3 0
coordinate
2 3 4
plot
2 3 4
Graphical Primitives hjust, lineheight,
g <- ggplot(mpg, size, vjust
aes(class, hwy))
+ system = x, alpha, color, fill, linetype, size, weight e + geom_crossbar(fatten
dfx,<-y,hjust,
Visualizing
lineheight,
= 2)error Visualizando el Error
color, size, fitvjust
2 2
x=F
y=A b + geom_abline(aes(intercept=0,
g + geom_bar(stat = slope=1) "identity") ) data.frame(grp
ymax, ymin, = c("A",
alpha, "B"),
fill, = 4:5, se = 1:2)
linetype,
df <- data.frame(grp = c("A", "B"), fit = 4:5, se = 1:2)
1 1
color = F
c <- ggplot(map, aes(long, lat)) e <-size
ggplot(df, aes(grp, fit, ymin = fit-se, ymax = fit+se))
size = A 0 0
b + geom_hline( aes(yintercept
x, y, alpha,
Discretecolor,=fill,
X,lat) ) size, weight
linetype,
Continuous Y
e + geom_errorbar()
j <- ggplot(df, aes(grp, fit, ymin = fit-se, ymax = fit+se))
0 1 3 4 0 1 3 4
Graphical Primitives
2
c + geom_polygon(aes(group
2
data geom coordinate plot = group)) g <- ggplot(mpg, aes(class, hwy))
x=F system b +size
x, y, alpha, color, fill, linetype, geom_vline(aes(xintercept
g + geom_boxplot() = long)) X Discreta, Y Continua
e +ymin,
x, ymax, geom_crossbar(fatten = 2)
alpha, color, linetype, size,
y=A
color = F
b + geom_segment(
g +middle,
lower,
aes(yend=lat+1,
geom_bar(stat
upper, x, ymax,
xend=long+1))
= "identity")
ymin, alpha, f <- ggplot(mpg, aes(class, hwy))
x, y,geom_errorbarh())
width (also ymax, ymin, alpha, color, fill, linetype,
size = A c <- ggplot(map, aes(long, lat)) color,x,fill, linetype,
y, alpha, color,shape,fill,size, weightsize, weight
linetype, size
e + geom_linerange() j + geom_crossbar(fatten = 2)
Para construir una gráfica complete este patrón g <- ggplot(economics,
b + geom_spoke(
aes(date, unemploy))aes(angle = 1:1155, radius = 1))
c + geom_polygon(aes(group = group)) g + geom_dotplot(binaxis = "y", e +ymax,
x, ymin, geom_errorbar()
alpha, color, linetype, size
x, y, ymax, ymin, alpha, color, fill, group,
g + geom_boxplot()
stackdir = "center")
x, y, alpha, color, fill, linetype, size f + geom_col()
x, ymax, ymin, alpha, color, linetype, size,
g + geom_path(lineend="butt", x, y, alpha,
lower,color, fill upper, x, ymax, ymin, alpha, e + geom_pointrange()
width (also geom_errorbarh()) linetype, size
ggplot(data = <DATA > ) +
<DATOS> Requeridolinejoin="round’, linemitre=1) middle,
x, y,x,ymin,
ey,+alpha, color,
ymax, alpha, fill,linetype,
color, fill, group, linetype, size
x, y, alpha, color, linetype, size Una Variable
g + geom_violin(scale
color, fill, linetype,= shape,
x, y,galpha,
+ geom_dotplot(binaxis
"area")size, weight
color, fill, linetype, size, =
weight
"y",
shape, size
geom_linerange()
x, ymin, ymax, alpha, color, linetype, size
j + geom_errorbar()
<GEOM_FUNCTION>
<FUNCION_GEOM> (
F MA 4 4
g <-g ggplot(economics, aes(date, unemploy))
+ geom_ribbon(aes(ymin=unemploy - 900,
stackdir = "center") Maps f + geom_boxplot() x, ymax, ymin, alpha, color, group, linetype,
mapping =aes( 3 <MAPPINGS> <ESTETICAS> ), 3 ymax=unemploy
g + + 900))
geom_path(lineend="butt",
Continua
x, y, alpha, color, fill e + geom_pointrange()
data <- data.frame(murder = USArrests$Murder, size, width (also geom_errorbarh())
x, ymax, ymin, alpha, color, fill, linetype, size
stat = <STAT> <STAT> 1 +2
,
2
= linejoin="round’ c <- ggplot(mpg,
, linemitre=1) aes(hwy)); c2 <-
Discrete
g + ggplot(mpg)
X, Discrete Y= "area")
geom_violin(scale
state
map <-
=
x, y, x,lower,
y, ymin, ymax,
map_data("state") middle,
tolower(rownames(USArrests))) alpha, upper, ymax, ymin, alpha,
color, fill, linetype,
j + geom_linerange()
1 No x, y, alpha, color, linetype, size h <- ggplot(diamonds, aes(cut, color))
color,
x, y, alpha, color, fill, linetype, size, weight e <- ggplot(data,
shape,
fill,size= murder))
aes(fill group, linetype, shape, size, weight
position
F M A = <POSITION> <POSICION>
0 0
Requerido, d<-gggplot(seals,
+ geom_ribbon( aes(xaes(ymin=unemploy
= long, y = lat)) - 900, h + geom_jitter() e + geom_map(aes(map_id = state), map = map) + x, ymin, ymax, alpha, color, group, linetype, size
c + geom_area(stat = "bin") f + geom_dotplot(binaxis = "y",
Maps
4 0 1 2 3 4 40 1 2 3 4
RStudio® es una marca registrada de RStudio, Inc. • CC BY RStudio • [email protected] • 844-448-1212 • rstudio.com Para aprender más vaya a docs.ggplot2.org y www.ggplot2-exts.org • ggplot2 2.1.0 • Actualizado: 12/16
Stats - Otra manera de construir una capa Escalas Sistema de Coordenadas Facetas
Las escalas asignan los valores que hay en los datos a r <- d + geom_bar() Las Facetas dividen una gráfica en multiple sub-
Stat crea nuevas variables para la gráfica, como count
fl cty cyl 4 4
los valores visuales de una estética. r + coord_cartesian(xlim = c(0, 5)) gráficas basada en una o varias variables discretas
x ..count..
3 3 xlim, ylim t <- ggplot(mpg, aes(cty, hwy)) + geom_point()
+ 2
= 2 (n <- d + geom_bar(aes(fill = fl))) Usa coordenadas cartesianas
t + facet_grid(. ~ fl)
1 1
0
0 1 2 3 4
0
0 1 2 3 4
escala
estética escala del argumentos r + coord_fixed(ratio = 1/2) usa fl para dividir en columnas
data stat geom coordinate plot afectada paquete
x=x system de la escala ratio, xlim, ylim
y = ..count..
t + facet_grid(year ~ .)
n + scale_fill_manual( Se fija la relación de aspecto usa year para dividir en lineas
Cambie el Stat que la función Geom usa para visualizarla, values = c("skyblue", "royalblue", "blue", "navy"), r + coord_flip() t + facet_grid(year ~ fl)
así: geom_bar(stat=“count”). También puede usar la limits = c("d", "e", "p", "r"), breaks =c("d", "e", "p", "r"),
función Stat, así: stat_count(geom=“bar") que igual name = "fuel", labels = c("D", "E", "P", "R")) xlim, ylim usa los dos para dividir
como una función Geom, esta función también crea una Las coordenadas son volteadas t + facet_wrap(~ fl)
valores etiqueta de cada intervalo de cada
capa. permitidos
título del eje
valor visible r + coord_polar(theta = "x", direction=1 ) divide en una manera rectangular
valor visible
theta, start, direction Use scales para que dejar que el límite cambie por cada
función geom función stat geométricas
Coordenadas polares faceta
Escalas para todo uso t + facet_grid(drv ~ fl, scales = "free")
i + stat_density2d(aes(fill = ..level..), Uselas con la mayoría de las estéticas r + coord_trans(ytrans = "sqrt")
geom = "polygon") variable que stat créa Cada faceta tiene limites x e y indpendientes
scale_*_continuous() - asigna valores continuos a xtrans, ytrans, limx, limy
• "free_x" - ajusta el límite del eje x
Distribución visuales xtrans e ytrans se asignan a funciones
c + stat_bin(binwidth = 1, origin = 10) Unidimensional ventanas para transformar las • "free_y" - ajusta el límite del eje y
scale_*_discrete() - asigna valores discretos a visuales
x, y | ..count.., ..ncount.., ..density.., ..ndensity.. scale_*_identity() - crea una estética visual por cada valor coordenadas cartesianas Use labeller para cambiar las etiquetas de las facetas
c + stat_count(width = 1) x, y, | ..count.., ..prop.. scale_*_manual(values = c()) - asigna valores específicos t + facet_grid(. ~ fl, labeller = label_both)
c + stat_density(adjust = 1, kernel = "gaussian") a valores visuales escogidos manualmente. 60
lat
date_breaks = "2 weeks") - Usa los valores como fechas t + facet_grid(fl ~ ., labeller = label_bquote(alpha ^ .(fl)))
scale_*_datetime() - Usa los valores como fecha-horas orientation=c(41, -74, 0)) ↵c ↵d ↵e ↵p ↵r
Distribución
e + stat_bin_2d(bins = 30, drop = T) Bidimensional Igual que scale_*_date pero usando strptime projection, orientation, xlim, ylim long
t + facet_grid(. ~ fl, labeller = label_parsed)
x, y, fill | ..count.., ..density.. Usa el paquete mapproj para proyectar mapas c d e p r
e + stat_bin_hex(bins=30) x, y, fill | ..count.., ..density..
Escalas de localización para X e Y
e + stat_density_2d(contour = TRUE, n = 100) Use con las estéticas x e y (aquí se muestra x) Ajustes a las posiciones Etiquetas
x, y, color, size | ..level..
scale_x_log10() - Usa escala logarítmica base 10 Determina que hacer con Geoms que ocuparían la t + labs( x = “Etiqueta X", y = “Etiqueta Y",
e + stat_ellipse(level = 0.95, segments = 51, type = "t") misma posición en la gráfica. Use
scale_x_reverse() - Posiciona x al revés title =“Título de la gráfica",
funciones
scale_x_sqrt() - Usa escala raíz cuadrada s <- ggplot(mpg, aes(fl, fill = drv)) subtitle = "Subtítulo de la gráfica", escalas para
l + stat_contour(aes(z = z)) x, y, z, order | ..level..
s + geom_bar(position = "dodge") caption = "Nota de la gráfica", controlar las
l + stat_summary_hex(aes(z = z), bins = 30, fun = max) Escalas para Color y Relleno (Discretas) etiquetas de
Pone los elementos a lado de cada uno <aes>
<AES> = “Texto in la <AES> “) las leyendas
x, y, z, fill | ..value.. n <- d + geom_bar(aes(fill = fl))
l + stat_summary_2d(aes(z = z), bins = 30, fun = mean) s + geom_bar(position = "fill") t + annotate(geom = "text", x = 8, y = 9, label = "A")
n + scale_fill_brewer(palette = "Blues")
x, y, z, fill | ..value.. 3 Variables Ver opciones de colores: RColorBrewer::display.brewer.all() Pone los elementos encima the cada uno Anotaciones
y usa toda la altura de la gráfica geom a usar valores manuales del geom
n + scale_fill_grey(start = 0.2, end = 0.8, na.value
f + stat_boxplot(coef = 1.5) Comparativas = "red") e + geom_point(position = "jitter")
x, y | ..lower.., ..middle.., ..upper.., ..width.. , ..ymin.., ..ymax.. Agrega ruido a los elementos Leyendas
f + stat_ydensity(kernel = "gaussian", scale = "area") Escalas para Color y Relleno (Continuas) A
e + geom_label(position = "nudge") n + theme(legend.position = "bottom")
x, y | ..density.., ..scaled.., ..count.., ..n.., ..violinwidth.., ..width.. o <- c + geom_dotplot(aes(fill = ..x..)) B
Empuja las letras para ver los puntos Pone la leyenda debajo (bottom), arriba(top),
o + scale_fill_distiller(palette = "Blues") s + geom_bar(position = "stack") izquierda (left), o derecha (right)
e + stat_ecdf(n = 40) x, y | ..x.., ..y.. Funciones Pone los elementos encima the cada uno n + guides(fill = "none")
o + scale_fill_gradient(low="red", high="yellow")
e + stat_quantile(quantiles = c(0.1, 0.9), Tipo de leyenda por cada estética : colorbar, legend,
Cada ajuste se puede usar como función para fijar el or none (no legend)
formula = y ~ log(x), method = "rq") x, y | ..quantile.. o + scale_fill_gradient2(low="red", high="blue",
mid = "white", midpoint = 25) ancho and alto n + scale_fill_discrete(name = "Title",
e + stat_smooth(method = "lm", formula = y ~ x, labels = c("A", "B", "C", "D", "E"))
se=T, level=0.95) x, y | ..se.., ..x.., ..y.., ..ymin.., ..ymax.. o + scale_fill_gradientn(colours=topo.colors(6)) s + geom_bar(position = position_dodge(width = 1))
También: rainbow(), heat.colors(), terrain.colors(), Fija el título y etiquetas de la leyenda
cm.colors(), RColorBrewer::brewer.pal()
ggplot() + stat_function(aes(x = -3:3), n = 99, Tema Agrandar una sección
fun = dnorm, args = list(sd=0.5)) x | ..x.., ..y.. Escalas que usan tamaño y figuras Sin cortar (preferido)
r + theme_bw() r + theme_classic()
150
t + coord_cartesian(
count
100
count
ggplot() + stat_qq(aes(sample=1:100), dist = qt, p + scale_shape() + scale_size() xlim = c(0, 100), ylim = c(10, 20))
0 0
cuadrícula
c d e p r c d e p r
fl fl
r + theme_linedraw()
dparam=list(df=5)) sample, x, y | ..sample.., ..theoretical.. p + scale_shape_manual(values = c(3:7)) 150
r + theme_gray()
150
100
r + theme_minimal()
count
50
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Temas minimalisticos
0
fl
e + stat_summary(fun.data = "mean_cl_boot")
c d e p r
fl
150
Usa el radio 50
c d e p r
fl
RStudio® es una marca registrada de RStudio, Inc. • CC BY RStudio • [email protected] • 844-448-1212 • rstudio.com Para aprender más vaya a docs.ggplot2.org y www.ggplot2-exts.org • ggplot2 2.1.0 • Actualizado: 12/16
c(-1, 26)