Primeramente se descarga algunos library aA continuacion se prsenta la lista de library que se va descagar
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.3 ✔ purrr 1.0.1
## ✔ tibble 3.2.1 ✔ dplyr 1.1.1
## ✔ tidyr 1.3.0 ✔ stringr 1.5.0
## ✔ readr 2.1.4 ✔ forcats 1.0.0
## Warning: package 'ggplot2' was built under R version 4.2.3
## Warning: package 'tibble' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.3
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(janitor)
## Warning: package 'janitor' was built under R version 4.2.3
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(datos)
## Warning: package 'datos' was built under R version 4.2.3
library(ggplot2)
library(gapminder)
## Warning: package 'gapminder' was built under R version 4.2.3
## Extensiones
library(ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.2.3
library(GGally)
## Warning: package 'GGally' was built under R version 4.2.3
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
##
## Attaching package: 'GGally'
##
## The following object is masked from 'package:ggmosaic':
##
## happy
library(patchwork)
## Warning: package 'patchwork' was built under R version 4.2.3
library(plotly)
## Warning: package 'plotly' was built under R version 4.2.3
##
## Attaching package: 'plotly'
##
## The following object is masked from 'package:ggplot2':
##
## last_plot
##
## The following object is masked from 'package:stats':
##
## filter
##
## The following object is masked from 'package:graphics':
##
## layout
library(esquisse)
## Warning: package 'esquisse' was built under R version 4.2.3
library(gganimate)
## Warning: package 'gganimate' was built under R version 4.2.3
library(gghighlight)
## Warning: package 'gghighlight' was built under R version 4.2.3
library(ggrepel)
## Warning: package 'ggrepel' was built under R version 4.2.3
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.2.3
library(ggalt)
## Warning: package 'ggalt' was built under R version 4.2.3
## Registered S3 methods overwritten by 'ggalt':
## method from
## grid.draw.absoluteGrob ggplot2
## grobHeight.absoluteGrob ggplot2
## grobWidth.absoluteGrob ggplot2
## grobX.absoluteGrob ggplot2
## grobY.absoluteGrob ggplot2
library(ggimage)
## Warning: package 'ggimage' was built under R version 4.2.3
##
## Attaching package: 'ggimage'
##
## The following object is masked from 'package:ggpubr':
##
## theme_transparent
library(ggthemes)
## Warning: package 'ggthemes' was built under R version 4.2.3
library(ggforce)
## Warning: package 'ggforce' was built under R version 4.2.3
ggmosaic ggmosaic fue diseñado para crear visualizaciones de datos categóricos y es capaz de producir gráficos de barras, gráficos de barras apiladas, gráficos de mosaico y gráficos de dos pisos En , se puede especificar la siguiente estética:geom_mosaic()
weight: seleccione una variable de ponderación
x: seleccione las variables que desea agregar a la fórmula
declarado como x = product(var2, var1, …) alpha: añadir una transparencia alfa a la variable seleccionada
A menos que se llame a la variable en , se agregará a la fórmula en la primera posiciónx fill: seleccione una variable que se va a rellenar
A menos que se llame a la variable en , se agregará a la fórmula en la primera posición después de la variable opcional.xalpha conds : seleccione una variable para acondicionar
declarado como conds = product(cond1, cond2, …)
1 definimos a una variable datos_credito_tbl.
datos_credito_tbl <- datos_credito |> clean_names() |> as_tibble()
datos_credito_tbl
## # A tibble: 4,454 × 14
## estado antiguedad vivienda plazo edad estad…¹ regis…² trabajo gastos ingre…³
## <fct> <int> <fct> <int> <int> <fct> <fct> <fct> <int> <int>
## 1 bueno 9 alquila 60 30 casado no freela… 73 129
## 2 bueno 17 alquila 60 58 viudo no fijo 48 131
## 3 malo 10 propiet… 36 46 casado sí freela… 90 200
## 4 bueno 0 alquila 60 24 soltero no fijo 63 182
## 5 bueno 0 alquila 36 26 soltero no fijo 46 107
## 6 bueno 1 propiet… 60 36 casado no fijo 75 214
## 7 bueno 29 propiet… 60 44 casado no fijo 75 125
## 8 bueno 9 padres 12 27 soltero no fijo 35 80
## 9 bueno 0 propiet… 60 32 casado no freela… 90 107
## 10 malo 0 padres 48 41 casado no tiempo… 90 80
## # … with 4,444 more rows, 4 more variables: activos <int>, deuda <int>,
## # cantidad <int>, precio <int>, and abbreviated variable names ¹estado_civil,
## # ²registros, ³ingresos
ejemplos, primero creamos variables , despues hace un grafico mosaico con respectivo datos(estado civil con estado)
## Ejemplo simple
datos_credito_tbl |>
ggplot() +
geom_mosaic(aes(x = product(estado_civil), fill = estado))
## Warning: `unite_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `unite()` instead.
## ℹ The deprecated feature was likely used in the ggmosaic package.
## Please report the issue at <]8;;https://github.com/haleyjeppson/ggmosaichttps://github.com/haleyjeppson/ggmosaic]8;;>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
A contunuacion con la misam grafico anterior se hace lo siguiente. En ,
se puede especificar la siguiente estética:geom_mosaic()
weight: seleccione una variable de ponderación
x: seleccione las variables que desea agregar a la fórmula
declarado como x = product(var2, var1, …) alpha: añadir una transparencia alfa a la variable seleccionada
A menos que se llame a la variable en , se agregará a la fórmula en la primera posiciónx fill: seleccione una variable que se va a rellenar
A menos que se llame a la variable en , se agregará a la fórmula en la primera posición después de la variable opcional.xalpha conds : seleccione una variable para acondicionar
declarado como conds = product(cond1, cond2, …) A continuación, estos valores se envían a través de funciones reutilizadas para crear la fórmula deseada: .productplotsweight ~ alpha + fill + x | conds
## Misma idea, grafica mejorada
datos_credito_tbl |>
mutate(
estado_civil =
estado_civil |>
fct_relevel("casado", "viudo", "soltero", "divorciado") |>
fct_collapse(`sep/div` = c("separado", "divorciado"))
) |>
drop_na(estado_civil) |>
ggplot(col="blue") +
geom_mosaic(aes(x = product(estado_civil), fill = estado)) +
scale_fill_brewer(palette="Set1") +
theme_bw() +
theme(legend.position = "none") +
coord_flip()
Agregar tan solo una variable adicional puede sobrecomplicar la
gráfica
datos_credito_tbl |>
mutate(
estado_civil =
estado_civil |>
fct_relevel("casado", "viudo", "soltero", "divorciado") |>
fct_collapse(`sep/div` = c("separado", "divorciado"))
) |>
drop_na(estado_civil) |>
ggplot() +
geom_mosaic(aes(x = product(estado_civil, trabajo), fill = estado)) +
coord_flip()
con rm para borrar base de datos.
rm(datos_credito_tbl)
GGally
El paquete GGally en R es una librería de gráficos ggplot2 que permite a los usuarios crear y personalizar sus propios gráficos. El paquete se encuentra disponible en CRAN y puede ser descargado e instalado mediante el comando install.packages(«GGally»).
mtcars |>
mutate(trans = if_else(am == 0, "Automática", "Manual"),
cyl = as.factor(cyl)) |>
ggpairs(columns = c("mpg", "wt", "trans"))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Agregando variable de para color
mtcars |>
mutate(trans = if_else(am == 0, "Automática", "Manual"),
cyl = as.factor(cyl)) |>
ggpairs(columns = c("mpg", "wt", "cyl"), mapping = aes(color = trans))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
patchwork
El objetivo es hacer que sea ridículamente simple de combinar Separe ggplots en el mismo gráfico. Como tal, trata de resolver el problema mismo problema que y pero mediante una API que incite a la exploración y la iteración, y se escala a diseños arbitrariamente complejos.patchworkgridExtra::grid.arrange()cowplot::plot_grid
plotly Plotly es una biblioteca de gráficos alternativa a ggplot2. Plotly utiliza JavaScript para renderizar los gráficos finales, lo que proporciona varias ventajas para la visualización digital.
La función inicializó la biblioteca de gráficos mientras indica el marco de datos donde se almacenan los datos. e indicar las columnas a trazar en cada eje.plot_ly()data = dfx = ~cyly = ~disp
# volcano is a numeric matrix that ships with R
fig <- plot_ly(z = ~volcano)
fig <- fig %>% add_surface()
fig
rm(fig)
Un ggplot2 ggplot2 es un sistema para crear gráficos de forma declarativa, basado en el método Gramática de Gráficos. Proporcionas los datos, le dices a ggplot2 cómo mapear variables a la estética, qué primitivas gráficas usar, y se encarga de los detalles.
A continuación, añade capas (como o ), escalas (como ), especificaciones de facetas (como ) y sistemas de coordenadas (como ).ggplot()aes()geom_point()geom_histogram()scale_colour_brewer()facet_wrap()coord_flip()
p1 <-
mtcars |>
mutate(
cyl = as.factor(cyl),
`Transmisión` = c("Automática", "Estándar")[am + 1],
am = as.factor(am)) |>
ggplot(aes(hp, mpg, color = cyl)) +
geom_point() +
facet_wrap(~ `Transmisión`, labeller = label_both) +
labs(x = "HP", y = "MPG", color = "Cilindros:") +
theme_light() +
theme(legend.position = "bottom")
ggplotly(p1)
rm(p1)
Carga base de datos mtcars
## Cargar datos al entorno
data(mtcars)
rm(mtcars)
gganimate
La gramática de los gráficos tal y como se implementa en el paquete ‘ggplot2’ tiene ha tenido éxito en proporcionar una potente API para crear visualización. Con el fin de ampliar la API para gráficos animados, este paquete Proporciona un conjunto de gramática completamente nuevo, totalmente compatible con ‘ggplot2’ para especificar transiciones y animaciones de forma flexible y extensible.
ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7, show.legend = FALSE) +
scale_colour_manual(values = country_colors) +
scale_size(range = c(2, 12)) +
scale_x_log10() +
facet_wrap(~continent) +
# Here comes the gganimate specific bits
labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +
transition_time(year) +
ease_aes('linear')
gghighlight
Facilite la exploración de datos con resaltados.
ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7, show.legend = FALSE) +
scale_colour_manual(values = country_colors) +
scale_size(range = c(2, 12)) +
scale_x_log10() +
facet_wrap(~continent) +
gghighlight(year == 2002)
## Warning: Tried to calculate with group_by(), but the calculation failed.
## Falling back to ungrouped filter operation...
## label_key: country
## Too many data points, skip labeling
ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7, show.legend = FALSE) +
scale_colour_manual(values = country_colors) +
scale_size(range = c(2, 12)) +
scale_x_log10() +
facet_wrap(~continent) +
gghighlight(year == 2007)
## Warning: Tried to calculate with group_by(), but the calculation failed.
## Falling back to ungrouped filter operation...
## label_key: country
## Too many data points, skip labeling
ggrepel
ggrepel proporciona geoms para ggplot2 para repeler etiquetas de texto superpuestas:
geom_text_repel() geom_label_repel() Las etiquetas de texto se repelen entre sí, lejos de los puntos de datos y lejos desde los bordes del área de trazado.
library(ggrepel)
e <- ggplot(
data = transform(mtcars,
car = row.names(mtcars)),
aes(hp, mpg))
e ## Base
e + geom_point() # Puntos
## El que sabemos hacer
e +
geom_label(aes(label = car), nudge_x = 1, nudge_y = 1, size = 3) +
geom_point()
## Cong ggrepel
e +
geom_label_repel(aes(label = car), nudge_x = 1, nudge_y = 1, size = 3) +
geom_point()
## Un poco mejorado
e +
geom_label_repel(aes(label = car), nudge_x = 1, nudge_y = 1, size = 3,
box.padding = 0.5,
segment.curvature = -0.2) +
geom_point() +
theme_bw()
## Warning: ggrepel: 6 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Con texto
e +
geom_text_repel(aes(label = car), nudge_x = 1, nudge_y = 1, size = 3) +
geom_point()
rm(e)
ggforce
ggforce es un paquete destinado a proporcionar la funcionalidad faltante a través del sistema de extensión introducido con v2.0.0. A grandes rasgos, se ha dirigido principalmente a los datos exploratorios visualización con el fin de investigar los datos disponibles, y menos en proporcionando utilidades para componer gráficos personalizados a la D3.js. es principalmente un intento de abordar estas “deficiencias” (las opciones de diseño podrían ser una mejor descripción). El El objetivo es proporcionar un repositorio de geoms, estadísticas, etc. que también son documentados e implementados como los oficiales que se encuentran en .ggplot2ggplot2ggplot2ggforceggplot2
ggplot(midwest, aes(state, area)) + geom_point()
# Boxplot and Violin plots convey information on the distribution but not the
# number of samples, while Jitter does the opposite.
ggplot(midwest, aes(state, area)) +
geom_violin()
ggplot(midwest, aes(state, area)) +
geom_jitter()
# Sina does both!
ggplot(midwest, aes(state, area)) +
geom_violin() +
geom_sina()
p <- ggplot(midwest, aes(state, popdensity)) +
scale_y_log10()
p + geom_sina()
# Colour the points based on the data set's columns
p + geom_sina(aes(colour = inmetro))
# Or any other way
cols <- midwest$popdensity > 10000
p + geom_sina(colour = cols + 1L)
# Sina plots with continuous x:
ggplot(midwest, aes(cut_width(area, 0.02), popdensity)) +
geom_sina() +
scale_y_log10()