Un diagrama marginal es un diagrama de dispersión que tiene histogramas, diagramas de caja o diagramas de puntos en los márgenes de los ejes x e y. Permite estudiar la relación entre 2 variables numéricas. El gráfico base visualiza la correlación entre las variables de los ejes x e y. Por lo general, es un diagrama de dispersión o un diagrama de densidad. Los gráficos marginales normalmente se trazan en el margen superior y derecho del gráfico base y muestran la distribución de las variables de los ejes x e y mediante un histograma, gráfico de barras o gráfico de densidad. Esto nos ayuda a visualizar la intensidad de distribución en diferentes valores de variables a lo largo de ambos ejes.
Para trazar un diagrama marginal en el lenguaje R, usaremos el paquete ggExtra del lenguaje R. ggExtra es una colección de funciones y capas para mejorar ggplot2. La función ggMarginal() se puede usar para agregar histogramas marginales/diagramas de caja/diagramas de densidad a los diagramas de dispersión ggplot2.
Instalación:
Para instalar el paquete ggExtra usamos:
install.packages("ggExtra")
Creación de Parcelas Marginales
Para crear gráficos marginales usamos la siguiente función para hacer un histograma marginal con un gráfico de dispersión.
Sintaxis: ggMarginal (parcela, tipo)
Parámetros:
- plot: Determina el diagrama de dispersión base sobre el cual se debe agregar el diagrama marginal.
- tipo: determina el tipo de gráfico marginal, es decir, histograma, diagrama de caja y densidad.
Ejemplo: diagrama de dispersión básico con histograma marginal, diagrama de densidad y diagrama de caja, todo organizado en una página usando la función grid.arrange() del paquete ggExtra.
R
# load library tidyverse, gridExtra and ggExtra library(tidyverse) library(ggExtra) library(gridExtra) # set theme theme_set(theme_bw(12)) # create x and y vector xAxis <- rnorm(1000) yAxis <- rnorm(1000) + xAxis + 10 # create sample data frame sample_data <- data.frame(xAxis, yAxis) # create scatter plot using ggplot() function plot <- ggplot(sample_data, aes(x=xAxis, y=yAxis))+ geom_point()+ theme(legend.position="none") # use ggMarginal function to create # marginal histogram, boxplot and density plot plot1 <- ggMarginal(plot, type="histogram") plot2 <- ggMarginal(plot, type="boxplot") plot3 <- ggMarginal(plot, type="density") # combine plots in a grid grid.arrange( plot1, plot2, plot3, ncol=3)
Producción:
Personalización de color y tamaño.
Podemos personalizar el parámetro de la función ggmarginal() para crear el aspecto deseado para nuestro gráfico marginal. Podemos usar los parámetros de tamaño, relleno y color de la función ggmarginal() para cambiar el tamaño relativo, el color de relleno de fondo y el color de rutina del gráfico marginal, respectivamente.
Sintaxis: ggMarginal (parcela, tipo, relleno, color, tamaño)
Parámetros:
- plot: Determina el diagrama de dispersión base sobre el cual se debe agregar el diagrama marginal.
- tipo: determina el tipo de diagrama marginal, es decir, histograma, diagrama de caja y densidad.
- relleno: determina el color de relleno de fondo de la trama marginal
- color: determina el color del contorno de la trama marginal
- tamaño: determina el tamaño relativo de los elementos de la trama.
Ejemplo: aquí, hemos modificado la trama del ejemplo anterior con colores personalizados y parámetros de tamaño.
R
# load library tidyverse, gridExtra and ggExtra library(tidyverse) library(ggExtra) library(gridExtra) # set theme theme_set(theme_bw(12)) # create x and y vector xAxis <- rnorm(1000) yAxis <- rnorm(1000) + xAxis + 10 # create sample data frame sample_data <- data.frame(xAxis, yAxis) # create scatter plot using ggplot() function plot <- ggplot(sample_data, aes(x=xAxis, y=yAxis))+ geom_point()+ theme(legend.position="none") # use ggMarginal function to create # marginal histogram, boxplot and density plot # fill, colo and size property is used for customization plot1 <- ggMarginal(plot, type="histogram", fill= "green", size=10) plot2 <- ggMarginal(plot, type="boxplot", color="yellow" ) plot3 <- ggMarginal(plot, type="density", color="green") # combine plots in a grid grid.arrange( plot1, plot2, plot3, ncol=3)
Producción:
Parcela marginal para un solo eje
A veces necesitamos un gráfico marginal en un solo eje, ya sea el eje x o el eje y. En esa situación, usamos el parámetro margins de la función ggmarginal(). El eje donde queremos que aparezca el gráfico marginal se da como el valor de los márgenes del argumento.
Sintaxis: ggMarginal( plot, type, margins )
Parámetros:
- plot: Determina el diagrama de dispersión base sobre el cual se debe agregar el diagrama marginal.
- tipo: determina el tipo de diagrama marginal, es decir, histograma, diagrama de caja y densidad.
- margins: Determina el eje donde se requiere la parcela marginal
Ejemplo: aquí hay dos gráficos, uno con el gráfico marginal en el eje x y el otro en el eje y.
R
# load library tidyverse, gridExtra and ggExtra library(tidyverse) library(ggExtra) library(gridExtra) # set theme theme_set(theme_bw(12)) # create x and y vector xAxis <- rnorm(1000) yAxis <- rnorm(1000) + xAxis + 10 # create sample data frame sample_data <- data.frame(xAxis, yAxis) # create scatter plot using ggplot() function plot <- ggplot(sample_data, aes(x=xAxis, y=yAxis))+ geom_point()+ theme(legend.position="none") # use ggMarginal function to create # marginal histogram on x-axis plot1 <- ggMarginal(plot, type="histogram", margins='x') # use ggMarginal function to # create marginal histogram on y-axis plot2 <- ggMarginal(plot, type="histogram", margins='y') # combine plots in a grid grid.arrange( plot1, plot2, ncol=2)
Producción:
Publicación traducida automáticamente
Artículo escrito por mishrapriyank17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA