El presente informe Rmarkdown contiene diversos gráficos que se pueden realizar en R. Así pues, se incluyen los siguientes gráficos:
Los gráficos univariados trazan la distribución de datos de una sola variable. La variable puede ser categórica (por ejemplo, raza, sexo) o cuantitativa (por ejemplo, edad, peso). El código para crear un gráfico de barras es el siguiente:
library(ggplot2)
library(tidyverse)
library(mosaicData)
library(dplyr)
library(ggplotlyExtra)
library(ggalt)
Barras <- ggplot(Marriage,
aes(x = race,
y = ..count.. / sum(..count..))) +
geom_bar(fill="#82D0C1",
color="white") +
labs(x = "Race",
y = "Percent",
title = "Participants by race") +
scale_y_continuous(labels = scales::percent)
Barras %>% plotly::ggplotly()
Los gráficos bivariados muestran la relación entre dos variables. El tipo de gráfico dependerá del nivel de medición de las variables (categóricas o cuantitativas).
Un diagrama de línea de cresta (también llamado diagrama de control) muestra la distribución de una variable cuantitativa para varios grupos. Son similares a las gráficas de densidad de kernel con facetas verticales, pero ocupan menos espacio. El código para crear un diagrama de control es el siguiente:
library(ggplot2)
library(ggridges)
ggplot(mpg,
aes(x = cty,
y = class,
fill = class)) +
geom_density_ridges() +
theme_ridges() +
labs("Highway mileage by auto class") +
theme(legend.position = "none")
Los gráficos multivariados muestran las relaciones entre tres o más variables. Hay dos métodos comunes para acomodar múltiples variables: agrupamiento y facetado (Parcelas).
En la agrupación, los valores de las dos primeras variables se asignan a los ejes x y y. Luego, las variables adicionales se asignan a otras características visuales como el color, la forma, el tamaño, el tipo de línea y la transparencia. La agrupación le permite trazar los datos de varios grupos en un solo gráfico. El código para crear una agrupación es el siguiente:
library(ggplot2)
data(Salaries, package="carData")
Agrupacion <- ggplot(Salaries,
aes(x = yrs.since.phd,
y = salary,
color = rank,
shape = sex)) +
geom_point(size = 3,
alpha = .6) +
labs(title = "Academic salary by rank, sex, and years since degree")
Agrupacion %>% plotly::ggplotly()
Un gráfico puede ser un vehículo poderoso para mostrar cambios a lo largo del tiempo. El gráfico dependiente del tiempo más común es el gráfico lineal de series de tiempo. Otras opciones incluyen los gráficos con mancuernas y el gráfico de pendiente.
Son útiles para mostrar cambios entre dos puntos de tiempo para varios grupos u observaciones. Utilizando el conjunto de datos gapminder, tracemos el cambio en la esperanza de vida de 1952 a 2007 en las Américas. El código para crear un dummbell chart es el siguiente:
library(ggalt)
library(tidyr)
library(dplyr)
data(gapminder, package = "gapminder")
plotdata_long <- filter(gapminder,
continent == "Americas" &
year %in% c(1952, 2007)) %>%
select(country, year, lifeExp)
plotdata_wide <- spread(plotdata_long, year, lifeExp)
names(plotdata_wide) <- c("country", "y1952", "y2007")
ggplot(plotdata_wide,
aes(y = reorder(country, y1952),
x = y1952,
xend = y2007)) +
geom_dumbbell(linewidth = 1.2,
size_x = 3,
size_xend = 3,
colour = "#AFAFAF",
colour_x = "#8B9DE8",
colour_xend = "#E8958B") +
theme_minimal() +
labs(title = "Change in Life Expectancy",
subtitle = "1952 to 2007",
x = "Life Expectancy (years)",
y = "")
Un modelo estadístico describe la relación entre una o más variables explicativas y una o más variables de respuesta. Los gráficos pueden ayudar a visualizar estas relaciones.
Considere la predicción de los precios de las viviendas en el conjunto de datos de Saratoga según el tamaño del lote (pies cuadrados), la edad (años), el valor del terreno (miles de dólares), el área habitable (pies cuadrados), la cantidad de dormitorios y baños y si la casa está frente al mar o no. El código para crear un modelo de regresión lineal es el siguiente:
data(SaratogaHouses, package="mosaicData")
houses_lm <- lm(price ~ lotSize + age + landValue +
livingArea + bedrooms + bathrooms +
waterfront,
data = SaratogaHouses)
summary(houses_lm)
##
## Call:
## lm(formula = price ~ lotSize + age + landValue + livingArea +
## bedrooms + bathrooms + waterfront, data = SaratogaHouses)
##
## Residuals:
## Min 1Q Median 3Q Max
## -220208 -35416 -5443 27570 464320
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.399e+05 1.647e+04 8.491 < 2e-16 ***
## lotSize 7.501e+03 2.075e+03 3.615 0.000309 ***
## age -1.360e+02 5.416e+01 -2.512 0.012099 *
## landValue 9.093e-01 4.583e-02 19.841 < 2e-16 ***
## livingArea 7.518e+01 4.158e+00 18.080 < 2e-16 ***
## bedrooms -5.767e+03 2.388e+03 -2.414 0.015863 *
## bathrooms 2.455e+04 3.332e+03 7.366 2.71e-13 ***
## waterfrontNo -1.207e+05 1.560e+04 -7.738 1.70e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 59370 on 1720 degrees of freedom
## Multiple R-squared: 0.6378, Adjusted R-squared: 0.6363
## F-statistic: 432.6 on 7 and 1720 DF, p-value: < 2.2e-16
El paquete visreg proporciona herramientas para visualizar estas relaciones condicionales.
library(ggplot2)
library(visreg)
Lineal <- visreg(houses_lm, "livingArea", gg = TRUE)
Lineal %>% plotly::ggplotly()
```