R语言 如何在ggplot2中用抖动的数据点制作分组的博弈图
在这篇文章中,我们将看到如何利用R编程语言中的ggplot2包来绘制带有抖动数据点的分组膨胀图。
分组膨胀图帮助我们使用ggplot2中的分组变量在一个图中可视化两个或多个特征/变量。抖动的点是属于另一个变量的数据点,被绘制在分组博列表的上面,以便更好地比较所考虑的变量的数据点的分布。
创建一个数据框架
在这里,我们可以使用R中任何内置的数据集(数据集列表可以使用data( )命令查看),甚至可以创建一个。让我们创建一个数据框并将其可视化。
# 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)
输出 :
绘制分组的膨胀图
在这里,我们将使用geom_boxplot()方法绘制boxplots。
geom_boxplot()的语法: geom_boxplot(mapping = NULL, data = NULL, outlier.shape = 19, na.rm = FALSE… )
参数
- mapping: 美学映射的集合
- data: 要在这个图层中显示的数据
- outlier.shape: 显示离群值,NA – 隐藏离群值
- na.rm: 处理缺失值,TRUE – 删除数据中的任何缺失值。
使用创建的数据框架绘制一个分组的Boxplot
使用ggplot2让我们使用创建的数据框架绘制一个分组盒形图。让我们来看看分数和游戏之间的boxplot,按级别填充。在这里,我们可以比较每个级别与游戏的关系。
# plotting a grouped boxplot
library(ggplot2)
ggplot(data, aes(x = game, y = score, fill = level)) +
geom_boxplot()
输出:
使用创建的数据框架绘制另一个博弈图
让我们来看看游戏和分数之间的另一个boxplot,按级别填充。这与上面的图表相同,但改变了坐标轴,使每个游戏与水平之间的对比更加清晰。
# another grouped boxplot
ggplot(data, aes(x = level, y = score, fill = game)) +
geom_boxplot()
输出 :
将抖动的数据点添加到分组的博列表中
在这里,我们使用geom_point()方法将抖动的数据点添加到分组的boxplot中。
geom_point()的语法: geom_point(mapping = NULL, data = NULL, position = “identity”, … )
参数
- mapping – 审美映射的集合
- data = dataset
- position – 点的位置调整
使用geom_point( ) 函数和position_jitterdodge( ) 参数添加抖动的数据点
让我们在boxplot上添加抖动的数据点,以便直观地看到数据在每场比赛中的分布。
# 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( )函数在boxplot上添加抖动的数据点,以比较每年每场比赛的得分在不同方面的表现。
# 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)
输出:
极客教程