📜  如何在 R 中使用边际直方图制作散点图?

📅  最后修改于: 2022-05-13 01:54:22.303000             🧑  作者: Mango

如何在 R 中使用边际直方图制作散点图?

在本文中,我们将讨论如何使用 R 语言制作带有边缘直方图的散点图。

为此,我们将使用 R 语言的 ggExtra 包。 ggExtra 是用于增强 ggplot2 的函数和层的集合。 ggMarginal()函数可用于将边际直方图/箱线图/密度图添加到 ggplot2 散点图。

安装:

要安装我们使用的 ggExtra 包:

install.packages("ggExtra")

安装后,我们可以加载包并使用以下函数制作带有散点图的边缘直方图。

使用边缘直方图创建基本散点图:

这里,是使用 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 为真。

示例:在这里,我们有一个散点图,其中边缘直方图均按组着色。我们根据格式偏好对 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 )

输出:

输出