📌  相关文章
📜  如何在 R 中的 ggplot2 中使用抖动数据点制作分组箱线图

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

如何在 R 中的 ggplot2 中使用抖动数据点制作分组箱线图

在本文中,我们将看到如何利用 R 编程语言中的 ggplot2 包来绘制带有抖动数据点的分组箱线图。

分组箱线图帮助我们使用 ggplot2 中的分组变量在单个图中可视化两个或多个特征/变量。抖动点是属于另一个变量的数据点,并绘制在分组箱线图的顶部,以便更好地比较所考虑变量的数据点的分布。

创建数据框

在这里,我们可以使用 R 中的任何内置数据集(可以使用 data() 命令查看数据集列表),甚至可以创建一个。让我们创建一个数据框并将其可视化。

R
# Creating a data frame
  
# variables for columns
game = rep(c('Footsal', 'Slamdunk', 'VolleyBall'), each=50)
level = rep(c('low', 'high'), each=25)
score = runif(150, min=1, max=500)
year = rep(c(1992,1993,1994),each=50)
  
data = data.frame(game, level, score,year)
head(data)


R
# plotting a grouped boxplot
library(ggplot2)
  
ggplot(data, aes(x = game, y = score, fill = level)) + 
geom_boxplot()


R
# another grouped boxplot
  
ggplot(data, aes(x = level, y = score, fill = game)) + 
geom_boxplot()


R
# Adding jittered data points on the boxplot
  
ggplot(data, aes(x = game, y = score, fill = level)) + 
geom_boxplot(outlier.shape = NA)+
geom_point(position = position_jitterdodge(), alpha=0.3)


R
# jittered points on boxplots in 3 facets by year
  
ggplot(data, aes(x = level, y = score, fill = game)) + 
geom_boxplot()+
geom_jitter(width = 0.1,alpha = 0.3) +
facet_wrap(~year)


输出

绘制分组箱线图

在这里,我们将使用 geom_boxplot() 方法绘制箱线图。

使用创建的数据框绘制分组箱线图

使用 ggplot2 让我们使用创建的数据框绘制分组箱线图。让我们可视化分数和游戏之间的箱线图,按级别填充。在这里,我们可以比较每个级别的游戏。

R

# plotting a grouped boxplot
library(ggplot2)
  
ggplot(data, aes(x = game, y = score, fill = level)) + 
geom_boxplot()

输出

使用创建的数据框绘制另一个箱线图

让我们可视化游戏和得分之间的另一个箱线图,按级别填充。这与上面的情节相同,但轴发生了变化,可以清楚地比较每个游戏的关卡。

R

# another grouped boxplot
  
ggplot(data, aes(x = level, y = score, fill = game)) + 
geom_boxplot()

输出

将抖动数据点添加到分组箱线图中

在这里,我们使用 geom_point() 方法将抖动数据点添加到分组箱线图中。

使用 geom_point( )函数和 position_jitterdodge( ) 参数添加抖动数据点

让我们在箱线图上添加抖动的数据点,以可视化数据相对于每个游戏的分布。

R

# Adding jittered data points on the boxplot
  
ggplot(data, aes(x = game, y = score, fill = level)) + 
geom_boxplot(outlier.shape = NA)+
geom_point(position = position_jitterdodge(), alpha=0.3)

输出

根据每年每场比赛的表现绘制带有抖动点的分组箱线图

让我们使用 geom_point( ) 和 facet_wrap( ) 函数在箱线图上添加抖动数据点,以比较每年每场比赛在不同方面的得分表现。

R

# jittered points on boxplots in 3 facets by year
  
ggplot(data, aes(x = level, y = score, fill = game)) + 
geom_boxplot()+
geom_jitter(width = 0.1,alpha = 0.3) +
facet_wrap(~year)

输出