如何在 R 中使用边际直方图制作散点图?
在本文中,我们将讨论如何使用 R 语言制作带有边缘直方图的散点图。
为此,我们将使用 R 语言的 ggExtra 包。 ggExtra 是用于增强 ggplot2 的函数和层的集合。 ggMarginal()函数可用于将边际直方图/箱线图/密度图添加到 ggplot2 散点图。
安装:
要安装我们使用的 ggExtra 包:
install.packages("ggExtra")
安装后,我们可以加载包并使用以下函数制作带有散点图的边缘直方图。
Syntax: ggMarginal( plot, type=”histogram” )
使用边缘直方图创建基本散点图:
这里,是使用 ggExtra 包的 ggMarginal函数的带有边缘直方图的基本散点图。
R
# load library tidyverse and ggExtra
library(tidyverse)
library(ggExtra)
# 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
ggMarginal(plot, type="histogram")
R
# load library tidyverse and ggExtra
library(tidyverse)
library(ggExtra)
# set theme
theme_set(theme_bw(12))
# create x and y vector
xAxis <- rnorm(1000)
yAxis <- rnorm(1000) + xAxis + 10
# create groups in variable using conditional statements
group <- rep(1, 1000)
group[xAxis > -1.5] <- 2
group[xAxis > -0.5] <- 3
group[xAxis > 0.5] <- 4
group[xAxis > 1.5] <- 5
# create sample data frame
sample_data <- data.frame(xAxis, yAxis, group)
# create scatter plot using ggplot()
# function colored by group
plot <- ggplot(sample_data, aes(x=xAxis, y=yAxis,
col = as.factor(group)))+
geom_point()+
theme(legend.position="none")
# use ggMarginal function to create marginal histogram
ggMarginal(plot, type="histogram",
groupColour = TRUE, groupFill = TRUE )
输出:
按组显示边缘直方图的颜色散点图:
要按组着色散点图,我们使用 ggplot()函数的 col 参数。为了按组着色边缘直方图,我们使用 groupColour 和 groupfill 为真。
Syntax: ggMarginal( plot, type=”histogram”, groupColour = TRUE, groupFill = TRUE )
示例:在这里,我们有一个散点图,其中边缘直方图均按组着色。我们根据格式偏好对 groupColor 和 groupFill 使用布尔值。
R
# load library tidyverse and ggExtra
library(tidyverse)
library(ggExtra)
# set theme
theme_set(theme_bw(12))
# create x and y vector
xAxis <- rnorm(1000)
yAxis <- rnorm(1000) + xAxis + 10
# create groups in variable using conditional statements
group <- rep(1, 1000)
group[xAxis > -1.5] <- 2
group[xAxis > -0.5] <- 3
group[xAxis > 0.5] <- 4
group[xAxis > 1.5] <- 5
# create sample data frame
sample_data <- data.frame(xAxis, yAxis, group)
# create scatter plot using ggplot()
# function colored by group
plot <- ggplot(sample_data, aes(x=xAxis, y=yAxis,
col = as.factor(group)))+
geom_point()+
theme(legend.position="none")
# use ggMarginal function to create marginal histogram
ggMarginal(plot, type="histogram",
groupColour = TRUE, groupFill = TRUE )
输出: