在统计学中,分类数据表示可以取名或贴标签的数据。
例子包括。
- 吸烟状况("吸烟者","非吸烟者")。
- 眼睛颜色("蓝色"、"绿色"、"淡褐色")。
- 教育水平(如 "高中"、"学士学位"、"硕士学位")。
常用于可视化这类数据的三种图包括。
- 柱状图
- 镶嵌图
- 按组绘制的图表
下面的例子展示了如何在R语言中创建这些图的各个部分。
例子1:条形图
下面的代码显示了如何创建一个条形图来显示某个数据框中球队的频率。
library(ggplot2)
#create data frame
df <- data.frame(result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'),
team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'),
points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))
#create bar chart of teams
ggplot(df, aes(x=team)) +
geom_bar()
X轴显示每个球队的名字,Y轴显示每个球队在数据框中的频率。
我们还可以使用下面的代码将图表中的条形图从大到小排序。
#create bar chart of teams, ordered from large to small
ggplot(df, aes(x=reorder(team, team, function(x)-length(x)))) +
geom_bar(fill='steelblue') +
labs(x='Team')
例2:按组排列的膨胀图
分组膨胀图是一种有用的方法,可以将一个数字变量按分类变量分组后进行可视化。
例如,下面的代码显示了如何创建按球队分组的得分分布的boxplots。
library(ggplot2)
#create data frame
df <- data.frame(result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'),
team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'),
points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))
#create boxplots of points, grouped by team
ggplot(df, aes(x=team, y=points)) +
geom_boxplot(fill='steelblue')
X轴显示球队,Y轴显示每个球队的得分分布。
例3:马赛克图
马赛克图是一种在一个图中显示两个不同分类变量的频率的图。
例如,下面的代码显示了如何创建一个马赛克图,在一个图中显示分类变量 "结果 "和 "球队 "的频率。
#create data frame
df <- data.frame(result = c('W', 'L', 'W', 'W', 'W', 'L', 'W', 'L', 'W', 'L'),
team = c('B', 'B', 'B', 'B', 'D', 'A', 'A', 'A', 'C', 'C'),
points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19),
rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8))
#create table of counts
counts <- table(df$result, df$team)
#create mosaic plot
mosaicplot(counts, xlab='Game Result', ylab='Team',
main='Wins by Team', col='steelblue')
X轴显示比赛结果,Y轴显示四个不同的球队。
其他资源
下面的教程解释了如何在R中创建其他常见的图。
如何在R中创建堆积条形图
如何在R中创建分组条形图
如何在R中创建堆积点图
The postHow to Plot Categorical Data in R (With Examples)appeared first onStatology.