如何在 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() 方法绘制箱线图。
Syntax of geom_boxplot(): geom_boxplot(mapping = NULL, data = NULL, outlier.shape = 19, na.rm = FALSE … )
Arguments:
- mapping: Set of aesthetic mappings
- data: data to be displayed in this layer
- outlier.shape: Displaying the outliers, NA – hides the outliers
- na.rm: dealing with missing values, TRUE – removes any missing values in data
使用创建的数据框绘制分组箱线图
使用 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() 方法将抖动数据点添加到分组箱线图中。
Syntax of geom_point(): geom_point(mapping = NULL, data = NULL, position = “identity”, … )
Arguments:
- mapping – Set of aesthetic mappings
- data = dataset
- position – Position adjustment of points
使用 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)
输出: